Java @事务(readOnly=false,propagation=propagation.REQUIRED)正在引发异常
我将spring与hibernate结合使用,并使用spring事务管理器。我有下面的方法,它是从另一个事务性方法调用的Java @事务(readOnly=false,propagation=propagation.REQUIRED)正在引发异常,java,spring,hibernate,Java,Spring,Hibernate,我将spring与hibernate结合使用,并使用spring事务管理器。我有下面的方法,它是从另一个事务性方法调用的 @Transactional (readOnly = true, propagation = Propagation.REQUIRED) public Map<String, String> getAllProperties () { } 但是,如果我将注释更改为blow one或删除注释属性,它就可以正常工作 @Transactional (readOnl
@Transactional (readOnly = true, propagation = Propagation.REQUIRED)
public Map<String, String> getAllProperties ()
{ }
但是,如果我将注释更改为blow one或删除注释属性,它就可以正常工作
@Transactional (readOnly = false, propagation = Propagation.REQUIRED)
public Map<String, String> getAllProperties ()
{ }
我觉得有点奇怪,因为我只更改了readOnly属性
有人能解释一下吗您似乎正在修改从hibernate接收的getAllProperties方法中的列表/对象 如果您提供更多的实施细节,这将有所帮助 同时,除了get*操作外,不要对Hibernate返回的列表/对象执行任何操作。
即使您从列表中删除一个元素以进行过滤,该元素将尝试更改数据库中的基础值。您似乎正在修改getAllProperties方法中从hibernate接收的列表/对象 如果您提供更多的实施细节,这将有所帮助 同时,除了get*操作外,不要对Hibernate返回的列表/对象执行任何操作。
即使从列表中删除一个元素进行过滤,该元素将试图更改数据库中的基础值。如果要修改数据库中的某些数据,则不能使用readOnly=true。 如果要检索某些数据集,则可以 因此,在更新或插入时,使用readOnly=false
祝您好运。如果您想修改数据库中的某些数据,readOnly=true是不可能的。 如果要检索某些数据集,则可以 因此,在更新或插入时,使用readOnly=false
祝你好运。你在你的方法中做什么?您正在修改hibernate映射的实例吗?您不能在只读事务中调用commit。您在方法中做什么?您正在修改hibernate映射实例吗?您不能在只读事务中调用commit。
@Transactional (readOnly = false, propagation = Propagation.REQUIRED)
public Map<String, String> getAllProperties ()
{ }