merge 与 update
对于transient对象,指明id后,可以使用merge来更新对应数据库条目,也可以使用update来更新,但是如果当前session中存在该id的记录,使用update会抛出异常.
对于detached对象,两者相似,update会将对象持久化,merge不会改变对象状态?(待验证)
对于persist对象,两者相同?(待验证)
merge 与 persist
persist会将对象持久化,merge不会,其他方面类似,比如如下代码
1 | User user = new User(); |
merge后会执行insert语句,但并不会改变user的状态,user.id==0
1 | User user = new User(); |
persist后也会执行insert语句,但会改变user的状态为persistent,user.id!=0,修改user的属性在transaction结束后会更新到数据库中.
orphanRemoval=true 与 cascade=CascadeType.DELETE
孤值删除包括了级联删除的情况. 同时孤值删除还会处理额外的情况, 当断开关系后update时会自动删除有外键的一方.
hibernate继承
注解方式example
1 |
|
hibernate在jsp中lazyloading失效的解决方法
配置enable_lazy_load_no_trans为true
未完待续…