hibernate 注意提醒
1.hibernate 中的 Transaction tx = session.beginTransaction();不是必须的.
如果没有事务hibernate 会 Using default transaction strategy (direct JDBC transactions).
2. 事务属性 read-only="true"
是二级缓存优化策略.表示使用事务,但是这个属性为true的事务将被认为不会修改数据库数据.
3.在同一个事务中,save 已经持久化的对象将会变成update 而不是insert.
如:
开启事务......,并且标记get 的read-only=true
Rate rate = rateService.get(id);
rate.setCode(10);
rateService.save(rate);
这个save 将变成更新同一个对象.
而如果:
是指get事务策略为support,设置read-only=true(如果不设置会报rate 对象的主键被修改的错误)
Rate rate = rateService.get(id);
rate.setCode(10);
开启事务...
rateService.save(rate);
则变成insert