关于hibernate的一些总结

1.hql查询得到一个完整的实体对象,通过set操作改变对象里的属性后,会自动执行update操作

2.hql查询得到一个完整的实体对象,是不存在一级缓存的

3.原生sql查询得到一个完整对象,会放入一级缓存

4.同一事务中,在执行persist方法后,自增id的id值就已经可以得到了,而不是事务提交时才能获取

5.同一事务中,通过update语句修改某实体字段,再次使用hql查询时,得到的是修改后的, 不需要flush操作(不遵循先读后写)

6.表关联时,如果fetch=eager,是执行级联查询,fetch=lazy是多sql查询

7.修改关联外键的方法: 两个关联实体级联查出,new一个新的关联对象,对新new的对象执行persist,然后set该外键(或者不单独persist,执行个关联保存也可以)

8.保存一个实体,对实体设置一个已经在关联表中存在的外键: 对关联的实体对象只设置关联的id,并且二者关联不允许级联保存

猜你喜欢

转载自blog.csdn.net/asdfsadfasdfsa/article/details/81902293