首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Transactional (readOnly = false,propagation = Propagation.REQUIRED)抛出异常

@Transactional (readOnly = false,propagation = Propagation.REQUIRED)抛出异常
EN

Stack Overflow用户
提问于 2014-04-23 19:44:13
回答 2查看 8.5K关注 0票数 1

我使用了spring和hibernate,并使用了spring事务管理器。我有下面的方法,它是从另一个事务性的方法调用的。

代码语言:javascript
复制
@Transactional (readOnly = true, propagation = Propagation.REQUIRED)
public Map<String, String> getAllProperties ()
{  }

我面临的问题是;如果我运行这个命令,我会得到下面的异常

代码语言:javascript
复制
Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: commit failed

但是,如果我将注释更改为空注释,或者删除注释属性,它就会工作得很好

代码语言:javascript
复制
 @Transactional (readOnly = false, propagation = Propagation.REQUIRED)
public Map<String, String> getAllProperties ()
{  }

我觉得这有点奇怪,因为我只更改了readOnly属性。

有没有人能解释一下

EN

回答 2

Stack Overflow用户

发布于 2014-08-12 22:51:26

如果你想修改数据库中的一些数据,使用readOnly = true是不可能的。如果你想检索一些数据集,这是可以的。

因此,当涉及到UPDATEINSERT时,请使用readOnly = false

祝好运。

票数 4
EN

Stack Overflow用户

发布于 2014-04-23 20:07:25

您似乎正在修改在getAllProperties()方法中从hibernate接收到的列表/对象。

如果您提供更多的实现细节,将会有所帮助。

同时,不要对Hibernate返回的list/object进行任何操作( get*操作除外)。即使您从列表中删除了一个元素(用于过滤),也会尝试更改数据库中的基础值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23243292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档