我正在尝试使用spring-data-couchbase
建立数据模型。
我创建了一个称为BaseEntity的超类,其中声明了所有子类的ID和基本字段。 @IdSuffix
和@IdPrefix
注释对我来说很好用,但是@Field
注释不起作用。
我尝试过@Inheritance
,@MappedSuperClass
,@Document
,...
这里是一个例子:
@Data
@Document
public abstract class BaseEntity {
@IdPrefix(order = 0) // works fine!
@Field //don't work
protected long number;
@IdSuffix(order =0) // works fine!
private UUID uuid;
public BaseEntity(long number){
this.number = number;
this.uuid = UUID.randomUUID();
}
}
@Data
@Document
public class Entity extends BaseEntity{
public Entity(long number){
super(number);
}
@Id
@GeneratedValue(strategy = GenerationStrategy.USE_ATTRIBUTES, delimiter = "::")
private String id;
@Field // works!
private LocalDate date;
}
结果是:
id= 1234567::467f970e-ab98-4244-afcf-7af81361d60a
{
"date": 1435301400000
}
我希望文档中的字段编号。
答案 0 :(得分:0)
好,我解决了这个问题。
@IdPrefix
和@Field
注释不能一起使用。
解决方案:
@Data
@Document
public abstract class BaseEntity {
@IdPrefix(order = 0) // works fine!
protected long numberPrefix;
@Field // Solution
protected long number;
@IdSuffix(order =0) // works fine!
private UUID uuid;
public BaseEntity(long number){
this.number = number;
this.numberPrefix = number;
this.uuid = UUID.randomUUID();
}
}