我有一个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*/
}
正如NoDataFound在注释中所建议的,如果您不想添加Id,可以使用可嵌入/嵌入串联的方法:由于Id问题,您应该将数据放在同一个表中(可以保留不同的类)。Java EE教程中有这个文档。如果不想更改代码,可以使用XML进行对象/关系映射。在关于JPA的wikibook中,您有一个XML示例。
和empdomain.updateemp() 我只是一个新手玩2,jpa持久化,所以我不知道如何修复异常错误,请帮助。
问题内容: 我是JPA的新手,主键值的自动生成存在问题。 我有以下实体: 以及其他类中的以下主要方法: 这是我的持久性单元: 当我执行程序时,在标有正确注释的行中出现以下异常: 我想念什么? 问题答案: TopLink过去要求您为MySQL 显式设置 GenerationType.IDENTITY ,因此请更改它并删除数据库。然后尝试再次运行样本。此外,您可能还想明确设置数据库平台: 我也模糊地记
当我将Java EE应用程序部署到Glassfish时,我有一个非常奇怪的问题。我有一个Eclipse EAR项目,它引用了一个Web项目(包含一个servlet),一个EJB项目(有一个EJB)和一个JPA项目(有一个@Entity)。在我的 servlet 中,我调用 EJB,它又执行以下查询: 在上面代码的第三行,我得到了一个异常: 我已经调试了上面提到的Hibernate类,即Metamo
我跟着 null 所有类代码都与http://glassfish.dev.java.net/javaee5/persistence/jpase.zip中的示例文件相同
我有如下雇员类 当我调用来persisting时,我会得到以下错误
我在Tomcat 7.0.32服务器上运行Java7.0.11。 你知道吗?