hibernate在删除对象之前为什么要先做一次查询?

J2EE 码拜 6年前 (2015-04-04) 1268次浏览 0个评论
 

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

hibernate在删除对象之前为什么要先做一次查询?
10分
直接用hql多好啊,你为什么说第一种好呢
hibernate在删除对象之前为什么要先做一次查询?
引用 1 楼 coolbamboo2008 的回复:

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

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

hibernate在删除对象之前为什么要先做一次查询?
10分
引用 2 楼 zsyx788 的回复:
Quote: 引用 1 楼 coolbamboo2008 的回复:

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

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

主键删除,用hql语言写,可以大批量删除,一个个对象删,显然效率不行的啊

hibernate在删除对象之前为什么要先做一次查询?
哪个性能好选哪个
hibernate在删除对象之前为什么要先做一次查询?
hibernate 自带的删除方法就是先查出来对象,如果存在再删除,你也可以按你自己的想法写自己的方法。
hibernate在删除对象之前为什么要先做一次查询?
感觉先查一次再删在某种情况下是可以减少误删的.但是又感觉不像,看个人爱好吧.喜欢哪个就用哪个
hibernate在删除对象之前为什么要先做一次查询?
这个不是hibernate的规定,hibernate只是提供一种机制,让你通过对象就可以删除数据库记录。
hibernate在删除对象之前为什么要先做一次查询?
10分
查出来是要看看有没有关联的对象,为级联删除做准备。 自己写当然最要好了, 直接告诉hibernate怎么做!
hibernate在删除对象之前为什么要先做一次查询?
10分
第二种效率高,先查出来是放到session缓存中了,而后同步物理数据库!按照hibernate的思想一般是以对象为基础进行操作!
hibernate在删除对象之前为什么要先做一次查询?
不是一样么??查一次就是为了看要删除的对象存在与否吧??没什么好不好的。
hibernate在删除对象之前为什么要先做一次查询?
我也在想,该用哪种方式删除,是用单一循环删除呢,还是使用hql语句,一次性全部删除呢。从表面看第二种会比较快,但第一种会比较安全?先查询后删除?
hibernate在删除对象之前为什么要先做一次查询?
个人认为要删除有外键关联的,并且自己为上一级的情况下采用Session的get或load方法先查一次,如果只是一个单独的表数据,可以自己手写hql语句效率会更高

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hibernate在删除对象之前为什么要先做一次查询?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!