过程是这样:单元测试test
→ 调用service
→ 调用repository
test层
service层
repository层
请问大佬们,如何解释日志里打印的3个update
记录?特别是它们执行的顺序(第二个update
语句,优先set name
的,应该就是repository
里面我手写的update
方法)。
1。本来打算3个层,都使用Transactional
注解的,因为既然Transactional
默认是继承上级事务,那最终其实只有一个事务在执行,但是,如果3个层都使用Transactional
,会出现事务回滚。
2。搜索了一些文章,说因为hibernate
的数据状态,所以查询出来的数据,set
了某个字段后,在事务结束的时候会自动执行update
,但是我怎么也想不明白,第三个update
日志,是怎么来的。
这个得了解一下
hibernate
的事务机制了,具体可以参考下这篇文章 How Spring and JPA / Hibernate Transaction Management works。