我的示例Java EE 7 EJB模块包含2个实体和一个在Wildfly 9.0.2(Hibernate 4.3.10.Final)或10.1.0(Hibernate 5.0.10.Final)上运行的无状态bean
@Id
和@OneToMany
关系
@IdClass
和@ManyToOne
与Master 这是查询
// setup new/unmanaged objects
Master m = new Master('masterkey');
Detail d = new Detail(m, 0);
em.createQuery("select count(d) from Detail d where d=:d")
.setParameter("d", d)
.getSingleResult()
情景的变化会导致不同的错误
'masterkey'
的主行,则无状态方法失败,数据库出现重复键错误A different object with the same identifier value was already associated with the session : [Master#masterkey]
我在更改查询时找到了一些解决方法,这不是我的问题。但是为什么Hibernate将新的Master
对象放入持久化上下文并随后将其插入到数据库中,它只是一个查询?