(一)要进行删除或者更新,需要先load(知道具体的ID除外,知道ID也可以直接使用HQL更方便)。
@Test
public void testDeleteGroup() {
testSaveGroup();
Session s = sessionFactory.getCurrentSession();
s.beginTransaction();
//User u = (User)s.load(User.class, 1);
//u.setGroup(null);
//s.delete(u);
Group g = (Group)s.load(Group.class, 1);
s.delete(g);
//s.createQuery("delete from User u where u.id = 1").executeUpdate();
s.getTransaction().commit();
}
(二)如果要删除关联关系,先设定关系为null,再删除对应记录,如果不删除记录,该记录就编程垃圾数据了。
@Test
public void testDeleteGroup() {
testSaveGroup();
Session s = sessionFactory.getCurrentSession();
s.beginTransaction();
User u = (User)s.load(User.class, 1);
u.setGroup(null);
s.delete(u);
//s.createQuery("delete from User u where u.id = 1").executeUpdate();//也可以使用hql语句来完成删除的操作,需要注意的是 这是面向对象的删除语句
s.getTransaction().commit();
}
对于使用HQL语言,可以实现更精确的控制(CRUD)