【发布时间】:2023-03-16 02:21:01
【问题描述】:
我是 JPA 的新手。 我想了解 JPA 在将对象持久化到数据库方面给了我什么样的帮助。 我的例子:一个 Person 类与一个 Address 类相关。每个人可以有多个 Address 。 我这样建模这个事实:
@实体 公共类人实现可序列化{ @Id int id; 字符串名; @OneToMany(mappedBy="id", cascade={CascadeType.PERSIST, CascadeType.REMOVE}) List我的 EmailAddress 类类似:
@实体 公共类 EMailAddress 实现 Serializable { @Id @GeneratedValue (策略=GenerationType.TABLE) 整数标识; 字符串地址; //这里有我所有的getter }好的。第一个问题是,当我尝试使用以下非常简单的代码来持久化一个人对象时,我得到一个外键错误:
人 p0 = 新人(); p0.setFirstName("艾伦"); p0.setId(99); //我创建一个 EMailAddress 对象,并将它添加到 Person 地址列表 EMailAddress ma = new EMailAddress(); ma.setAddress("Alan@sample.world"); p0.setEmailList(new ArrayList()); p0.getEmailList().add(ma); em.getTransaction().begin(); em.persist(p0); em.getTransaction().commit();例外:
10924 [main] 错误 org.hibernate.util.JDBCExceptionReporter - 在表 'EMAILADRESS' 上插入已导致违反外键约束 'FK95CEBD60BE95C400' 的键 (327680)。该指令已回滚。【问题讨论】:
标签: hibernate orm persistence jpa-2.0