我有以下JPA实体:
@Entity
class User {
Long id;
String name;
// other fields
}
@Entity
class Department {
@Id
Long id;
String name;
// other fields
}
现在我想创建用户和部门之间的关系。创建新用户时,我不想获取部门并使用以下命令设置:
user.setDepartment(department);
相反,我更喜欢设置部门ID:
user.setDepartmentId(departmentId);
并保留数据库以验证外键约束。
但是,同时应该可以与用户一起获得完整的部门数据。例如,我想执行以下spring-data查询:
SELECT u FROM UserModel as u LEFT OUTER JOIN FETCH u.department;
是否可以使用以下方式实现:
答案 0 :(得分:2)
您可以使用以下代码:
Department department = entityManager.getReference(Department.class, departmentId);
user.setDepartment(department);
getReference
不会发出选择权,并会认为此departmentId
存在。