gpt4 book ai didi

java - BaseEntity @Inheritance - 如何从父类(super class)继承字段

转载 作者:行者123 更新时间:2023-12-02 01:25:14 24 4
gpt4 key购买 nike

我正在尝试使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com