首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BaseEntity @Inheritance如何从超类继承字段

BaseEntity @Inheritance如何从超类继承字段
EN

Stack Overflow用户
提问于 2019-08-21 19:22:28
回答 1查看 194关注 0票数 0

我正在尝试用spring-data-couchbase创建一个数据模型。

我创建了一个名为BaseEntity的超类,其中声明了所有SubClasses的ID和基本字段。@IdSuffix@IdPrefix批注对我来说工作得很好,但@Field批注不起作用。

我试过@Inheritance@MappedSuperClass@Document,...

下面是一个示例:

代码语言:javascript
复制
@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;
}

结果是:

代码语言:javascript
复制
id= 1234567::467f970e-ab98-4244-afcf-7af81361d60a

{
   "date": 1435301400000
}

我希望文档中有字段编号。

EN

回答 1

Stack Overflow用户

发布于 2019-08-22 21:04:08

好了,我解决了这个问题。

@IdPrefix@Field注解不能一起工作。

解决方案:

代码语言:javascript
复制
@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();
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57590510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档