当前位置: 首页 > 知识库问答 >
问题:

jpa-persisted类不是实体

闻人嘉颖
2023-03-14

我有一个JPA项目(Eclipse Link),工作正常,但我想持久化一个不是实体的类(或在相同的持久化上下文中不是实体),目前我持久化引用id,然后我执行调用以检索对象。我需要知道什么是最好的方式做到这一点…我不希望在bean中添加代码作为侦听器事件,因为我希望有一个干净的bean(构造、属性、不带注释的setter和getter),

我的想法是扩展PersistenceContext(但是,我不知道怎么做),添加一个过滤器,标识要持久化的类,并做一些事情来替换未映射的类的持久化。

这是一个简单的例子…

@Entity
public class Customer{

@Column
Integer id;

@Column
/*transient?*/
CustomerInfo customerInfo

/*setters and getters*/
}

/*this class maybe not be Entity.. Maybe be a Web Service Response Bean*/
public class CustomerInfo{
   private String firstName;
   private String lastName;
   private BigDecimal balance;
   /*setters and getters*/
}

共有1个答案

栾昂雄
2023-03-14

正如NoDataFound在注释中所建议的,如果您不想添加Id,可以使用可嵌入/嵌入串联的方法:由于Id问题,您应该将数据放在同一个表中(可以保留不同的类)。Java EE教程中有这个文档。如果不想更改代码,可以使用XML进行对象/关系映射。在关于JPA的wikibook中,您有一个XML示例。

 类似资料: