日期:2014-05-18  浏览次数:20619 次

hibernate在删除对象之前为什么要先做一次查询?
hibernate在删除对象的时候可以直接查找出对象后在用delete方法删除。 也可以使用hql(delete from table  where id = ?)语句来删除,那么这两种方法有什么区别,为什么推荐使用第一种,先发一条查询语句再做删除,而不是直接一条查询语句删除呢?

------解决方案--------------------
直接用hql多好啊,你为什么说第一种好呢
------解决方案--------------------
引用:
Quote: 引用:

直接用hql多好啊,你为什么说第一种好呢


我现在也已经混乱了,所以我想知道是主键删除好还是对象删除好?


主键删除,用hql语言写,可以大批量删除,一个个对象删,显然效率不行的啊
------解决方案--------------------
查出来是要看看有没有关联的对象,为级联删除做准备。 自己写当然最要好了, 直接告诉hibernate怎么做!
------解决方案--------------------
第二种效率高,先查出来是放到session缓存中了,而后同步物理数据库!按照hibernate的思想一般是以对象为基础进行操作!