JPA和Hibernate是否在没有事务开始和提交的情况下自动更新数据库

Sam*_*sae 2 java orm hibernate jpa transactions

在JPA,如果我尝试使用setter和getter方法,无需使用事务开始和提交更新管理对象,并JPA自动更新考虑数据库(不是立即,但后来)FlushTypeAUTO.

Vla*_*cea 7

在JPA中,实体状态转换不会自动与数据库同步.如果实体附加到持久性上下文,则在刷新时,自动脏检查机制将对象状态更改转换为DML语句.

但是这需要实体由持久化上下文管理,否则,脏检查机制将不会触发.

虽然JPA规范只需要将实体状态转换包装在逻辑事务中:

您应该始终使用事务,即使只读取数据.

如果在读取数据时没有显式使用事务,则会回退到自动提交模式,从而给连接池机制带来额外压力,最终每个查询都有一个数据库事务.