Hibernate一对多映射关系

6. 运行项目并查看结果

在 Hibernate 配置文件中添加自动建表信息后,在运行程序时,程序会自动创建两张表,并且插入数据。使用 JUnit 测试运行 test1() 方法后,控制台显示结果如图 2 所示。

输出结果


图 2  输出结果


从图 2 的显示结果中可以看出,控制台总共输出了三条 insert 语句和两条 update 语句,此时查询两张表中的数据,如图 3 所示。

查询结果


图 3  查询结果


从图 3 查询结果中可以看出,grade 表和 student 表都已经成功创建,并插入了相应的数据。

在 Hibernate 中,像班级和学生这种关联关系,使用双向关联会执行两次 SQL 语句,这样会导致程序执行效率降低。

如果将 OneToManyTest 中的第 23 行和第 24 行代码删除,并将 grade 表和 student 表中的数据从数据库中删除,那么重新运行 test1() 方法后,控制台的输出结果如图 4 所示。

输出结果


图 4  输出结果


从图 4 的显示结果中可以看出,控制台只显示出了三条 insert 语句,而没有显示 update 语句。

此时再次查询数据表中的数据,其查询结果将与图 3 中的显示结果相同。由于删除了两行描述班级有多个学生的代码,实现了班级对学生的一对多单向关联,所以程序只执行了一次 SQL 语句,但达到了同样的效果。在实际开发中,像班级和学生这种关联关系,使用单向关联描述即可。

猜你喜欢

转载自blog.csdn.net/unbelievevc/article/details/132138824
今日推荐