我正在使用spring-data-cassandra。是否有一种方式或注释,可以在我的实体Java POJO中用于uuid或timeuuid类型的主键,以自动生成主键(id)的值?
我知道我可以使用id = UUIDs.timeBased();
,但我想要自动化它。
我正在使用spring-data-cassandra。是否有一种方式或注释,可以在我的实体Java POJO中用于uuid或timeuuid类型的主键,以自动生成主键(id)的值?
我知道我可以使用id = UUIDs.timeBased();
,但我想要自动化它。
您可以始终实现默认构造函数:
MyEntity() {
id = UUIDs.timeBased();
}
这样是否足够?显然,这将在实例化时产生不必要的生成,会消耗系统中的一些随机熵。但是,如果您的系统没有过多的高压运行,那么您应该是安全的。
虽然id
可以在默认构造函数中初始化,但这样会导致不必要的UUIDs
生成。
更好的方法是利用POJO类的多个构造函数 -
默认构造函数 -
public MyEntity() {
}
参数化构造函数 - 在构造函数中传递除id
字段之外的所有字段。该构造函数应在应用程序代码中调用。字段的类型和数量可能会有所变化 -
public MyEntity(String field1) {
this.field1 = field1;
this.id = UUIDs.timeBased();
}