Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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/2/spring/14.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
Java Spring和Postgres事务错误_Java_Spring_Hibernate_Jpa_Postgresql 9.5 - Fatal编程技术网

Java Spring和Postgres事务错误

Java Spring和Postgres事务错误,java,spring,hibernate,jpa,postgresql-9.5,Java,Spring,Hibernate,Jpa,Postgresql 9.5,目前,我在Postgresql 9.5中使用Spring 4.0.6。我正在将一个serviceclas1呼叫另一个serviceclas2,并获得一个事务异常,如下所示: 服务类 `@Transactional(readOnly = false, propagation = Propagation.REQUIRED,rollbackFor= { Throwable.class }) public Map<String, Object> storeUsersList(Map<S

目前,我在Postgresql 9.5中使用Spring 4.0.6。我正在将一个
serviceclas1
呼叫另一个
serviceclas2
,并获得一个事务异常,如下所示:

服务类

`@Transactional(readOnly = false, propagation = Propagation.REQUIRED,rollbackFor= { Throwable.class })
public Map<String, Object> storeUsersList(Map<String, Object> mapOfParams) throws Exception {
    Map<String, Object> returnMap = new HashMap<String, Object>();
if (userListToStore != null && !userListToStore.isEmpty()) {                
integrationService.manangePassCodes(org,userListToStore.size());
                for (Users singleUser : userListToStore) {
                    try {
                        getEm().update(singleUser);`
我在这里遇到了一个例外-
getEm().update(单用户)

异常SQL状态[25P02];错误代码[0];无法提取 结果集


我刚刚读到有关Postgres事务的错误,但无法获取Hibernate应使用的内容。

不是100%确定是否是这种情况,但在您的
storeUsersList
方法中,您似乎正在重用存储在实例变量
userListToStore
中的现有用户集合

此用户集合不是从事务内部初始化的,因此当您使用容器管理的事务时,实体最有可能被分离

在我看来,您应该在执行更新之前合并每个实体,以便持久性上下文能够识别它们:

for (Users singleUser : userListToStore) {
      try {
        getEm().merge(singleUser);
        getEm().update(singleUser);

感谢您的快速帮助,我通过检查更多信息并阅读上面的错误消息,解决了我的问题。我从一个事务调用了许多事务,这意味着在我的情况下,由于上一个事务错误,next被中止,因为它在DB上有写锁。在整理前一笔交易之前,不会保存当前交易以前的事务有愚蠢的错误
getEm().update(单用户)
当前没有错误的事务
integrationService.manangePassCodes(org,userListToStore.size‌());
一段代码
因为两者都属于不同的服务,但是我已经用
@Transactional(propagation=propagation.REQUIRED,readOnly=false,rollboor={Throwable.class})
propagation=propagation.REQUIRED意味着它将支持当前事务,如果不存在,则创建一个新事务。 所以它给了我错误25P02-事务中止

参考链接1-

参考链接2-


参考链接3-

谢谢,但我通过查看更多信息并阅读此错误消息解决了我的问题,我得出结论,保存错误不在
getEm().update(singleUser)中很抱歉已有评论。谢谢,但我已经解决了我的问题,通过检查更多和阅读有关此错误消息上面。这意味着上一个事务被中止,下一个事务无法继续,保存错误不在
getEm().update(singleUser)处而它位于
integrationService.manangePassCodes(org,userListToStore.size())代码参考链接1-参考链接2-
for (Users singleUser : userListToStore) {
      try {
        getEm().merge(singleUser);
        getEm().update(singleUser);