【发布时间】:2011-08-13 20:07:27
【问题描述】:
我有两个实体,分别是 Student 和 Class 实体。 学生和班级是多对一的关系。所以学生包含类属性。
现在我想保存或创建一个与现有班级的学生关联(意味着我已经知道主键 ID)。
解决方案 1:
Student student = new Student();
Class class = session.load(classId);
student.setClass(class);
session.save(student);
解决方案 2:
Student student = new Student();
Class class = new Class();
class.setClassId(classId);
student.setClass(class);
session.save(student);
我的问题是在解决方案 1 中它会发出两个 SQL,一个是获取 Class,另一个是插入 student。但在解决方案 2 中只需要一个 SQL。如果我有更多的类属性, 我将在插入之前加载并发出更多选择 sql。似乎效率不高。方案二有副作用吗?
哪种保存/插入方式更好?顺便说一句,我没有设置级联。
谢谢 陈奕
【问题讨论】:
标签: mysql hibernate hibernate-mapping