我没有在Hibernate配置文件中设置此属性,并且我使用的是使用Hibernate配置的Postgres数据库连接。但是我的事务执行得很好,但是在DB中没有持久化。将此属性设置为“COMMIT”后,问题已解决。然而,当我在没有这个属性的情况下使用Jboss的PostgresDS文件进行数据库连接时,所有的事务都可以持久化并且工作正常。
这个属性是必需的吗?(我想是的--因为它解决了我的问题)但是这个属性的其他后果是什么呢?
发布于 2014-04-09 16:00:54
默认情况下,自动提交值为false,因此需要显式提交事务。这可能是为什么更改不会反映在数据库中的原因,否则可以尝试flush在提交之前强制更改。
当您关闭会话时,它将隐式地提交到数据库中,这取决于实现。
当您有级联事务并需要回滚以实现原子性时,您需要控制事务&在这种情况下,自动提交应该为false。
要么将自动提交设置为true,要么显式处理事务。
https://stackoverflow.com/questions/22954612
复制相似问题