我正在尝试使用 spring-data-couchbase
创建数据模型。
我创建了一个名为 BaseEntity 的父类(super class),其中声明了所有子类的 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
}
我期望文档中的字段编号。
最佳答案
好的,我解决了问题。
@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();
}
}
关于java - BaseEntity @Inheritance - 如何从父类(super class)继承字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57590510/