hibernate 级联操作

级联:当你存储一个表的内容想值得相关联的表也存储数据时,可以通过级联来实现(cascade) @Entity @Table(name="t_User") public class User { private int id; private String name; private Grup grup; @ManyToOne(cascade={CascadeType.ALL}) //all:意为级联全部,牵一发而动全身,只要是其中一个表进行数据库操作,另一个也会跟着进行操作 public Grup getGrup() { return grup; } public void setGrup(Grup string) { this.grup = string; } @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public User(int id, String name) { super(); this.id = id; this.name = name; } public User() { } }

test单元测试:按道理,可以分别存储user和grup的内容,但是结果不是这样的,grup的内容是空值,这时级联就登上表演舞台 public class ManyToOneTest { @Test public void testSaveUser() { User u = new User(); u.setName("Judy"); Grup g =new Grup(); g.setName("Linda"); u.setGrup(g);; @SuppressWarnings("deprecation") SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session =sessionFactory.getCurrentSession(); session.beginTransaction(); session.save(u); session.getTransaction().commit(); }

}

由结果可知,数据已经插入到对应的表中

注意:级联只是可以让写程序的人在操作过程中较为省事,但是并非必需要用到,如果想要把多表的数据内容分先后顺序,完全可以手动存储,不用级联操作。

posted @ 2016-06-28 08:59  任心荒芜  阅读(342)  评论(0编辑  收藏  举报