Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate抛出NoResultException,即使记录存在于数据库中_Hibernate_Jpa - Fatal编程技术网

Hibernate抛出NoResultException,即使记录存在于数据库中

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

我正在用Rest easy framework使用jboss-as-7.1.1.Final、hibernate 4.0。问题是在数据库中持久化记录后,立即触发更新调用以更新/插入持久化对象的子实体

因此,我使用
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中吗?否。在一个事务中持久化对象,而在另一个事务中发生更新。这两个事务都是以毫秒为间隔发生的。只有在一些记录中,这一问题才被提出