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

hibernate 中,删除一个查询出来的对象和删除一个new出来的对象,有什么区别


@Entity
@Table(name="ts_user")
public class User {
@Id
@Column
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer userId;
}



删除一个对象有2中方法,
一个是:

User user = (User)session.load(User.class,1);
session.delete(user);

另一个是:

User user1 = new User();
user1.setUserId(1);
session.delete(user1);

请问,这2中方法有什么不同
------解决方案--------------------
一个是通过session拦截 然后进行删除  另一个是通过获取对象删除
------解决方案--------------------
对于数据库而言,没有什么区别,删除操作都是按照主键ID,来删除数据的。
------解决方案--------------------
有区别的,我们假设你配置了级联删除的哈,如果你的user关联了其他的对象,第一种会级联删除,第二种则不会,要报错,我试过的
------解决方案--------------------
一个是通过session拦截 然后进行删除  另一个是通过获取对象删除
------解决方案--------------------
这个你看一下hibernate的对象的几种状态,就明白了
------解决方案--------------------
引用:
有区别的,我们假设你配置了级联删除的哈,如果你的user关联了其他的对象,第一种会级联删除,第二种则不会,要报错,我试过的
,同意四楼