Hibernate抛出NoResultException,即使记录存在于数据库中
我正在用Rest easy framework使用jboss-as-7.1.1.Final、hibernate 4.0。问题是在数据库中持久化记录后,立即触发更新调用以更新/插入持久化对象的子实体 因此,我使用Hibernate抛出NoResultException,即使记录存在于数据库中,hibernate,jpa,Hibernate,Jpa,我正在用Rest easy framework使用jboss-as-7.1.1.Final、hibernate 4.0。问题是在数据库中持久化记录后,立即触发更新调用以更新/插入持久化对象的子实体 因此,我使用em.find(record.class,primary key(long))方法获取持久化的父记录并检查null。如果父记录不为空,则将插入/更新到子记录中 它在本地运行良好,但是当我进行负载测试时,即使父对象存在于数据库中,父记录也是空的。有什么想法吗 下面是代码快照: //persi
em.find(record.class,primary key(long))
方法获取持久化的父记录并检查null。如果父记录不为空,则将插入/更新到子记录中
它在本地运行良好,但是当我进行负载测试时,即使父对象存在于数据库中,父记录也是空的。有什么想法吗
下面是代码快照:
//persisting record in one API call
entityManager.persist(record);
//Finding record
Record record = entityManager.find(Record.class, recordId);
if (record != null) {
//Fetch child entity
Hibernate.initialize(record.getRecordsettings());
Hibernate.initialize(record.getRecordstate());
}
return record;
}
我尝试了em.refresh()
,但它并没有解决问题
在一个事务中持久化对象,并在中进行更新
另一笔交易。这两项交易都发生在美国的一小部分地区
毫秒间隔。只有在一些记录中,这一问题才被提出
这可能是由于创建和更新之间的最小间隔造成的。
如果可以,请尝试在两个单独的线程上创建和更新。并加入更新线程,以确保它等待创建线程完成。回复你的结果
此外,请参阅本文,并检查在插入完成之前是否触发了更新:
备注>目前还没有评论权限,因此作为回复发布。请发布您的快照properly@AdityaVikas更新。所有这些都发生在同一个TX中吗?否。在一个事务中持久化对象,而在另一个事务中发生更新。这两个事务都是以毫秒为间隔发生的。只有在一些记录中,这一问题才被提出