首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自非实体类的JPA继承属性

来自非实体类的JPA继承属性
EN

Stack Overflow用户
提问于 2019-08-17 13:50:30
回答 1查看 168关注 0票数 0

我看到了很多关于这个问题的帖子,但是我找到的许多答案是使用@MappedSuperclass注释,在我的例子中,它破坏了我所做的模块化设计。

假设您有两个类,一个是实体类,另一个是非实体类的另一个模块:

模块M:

代码语言:javascript
复制
@Entity
public class A {
 //Properties
}

模块M':

代码语言:javascript
复制
public class SuperA {
   String name;
   String age;

   //getters and setters
}

我希望重用SuperA的属性,以便映射到A实体中。但我不想让模块M‘,也不想让类SuperA知道持久化知识(例如,避免@MappedSuperclass注释)。

我该如何处理这个问题?我考虑了A类的适配器模式,但我不确定.

EN

回答 1

Stack Overflow用户

发布于 2019-08-17 14:14:01

我可以看到两种选择:

1)必须添加一个基于XML的Hibernate配置,作为整个持久性单元的一部分。考虑到避免模块M中的任何其他改动:

代码语言:javascript
复制
<component name = "SuperA">
        // properties
</component>

在这里,您将SuperA类注册为一个可嵌入的类。

2)在第一个模块中扩展SuperA并将该类标记为@Embeddable。然后,在每个需要它的实体中,只需创建一个字段并使用@Embedded对其进行注释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57536887

复制
相关文章

相似问题

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