我有一个用户域类。它有两种用户类型。一个是0,0 1,0 0,6666666666666666 -0,3333333333333333 0,0 0,0 1,3333333333333333
1,0 0,0 -0,3333333333333333 0,6666666666666666 0,0 0,0 3,3333333333333335
0,0 0,0 -1,0 1,0 1,0 0,0 3,0
0,0 0,0 -0,6666666666666666 0,3333333333333333 0,0 1,0 0,6666666666666667
0,0 0,0 -0,3333333333333333 -1,3333333333333333 0,0 0,0 -12,666666666666666
,另一个是 0,00 1,00 0,67 -0,33 0,00 0,00 1,33
1,00 0,00 -0,33 0,67 0,00 0,00 3,33
0,00 0,00 -1,00 1,00 1,00 0,00 3,00
0,00 0,00 -0,67 0,33 0,00 1,00 0,67
0,00 0,00 -0,33 -1,33 0,00 0,00 -12,67
。它有两个字段,一个是teacher
,另一个是student
。由于teacherInfo
用户拥有许多与studentInfo
用户不同的属性,因此我无法将其合并为teacher
。否则会有很多空字段。
所以在hibernate中,我应该如何映射关系。如果我使用student
,则要求UserInfo
和One-to-one
都不能为空。因此,它没有意义,因为教师用户不应该映射teacherInfo
。 studentInfo
关系解决了这个问题,但似乎有线。我只是无法做出决定。感谢。
studentInfo
答案 0 :(得分:0)
所以在hibernate中,我应该如何映射关系。如果我使用一对一,则要求teacherInfo和studentInfo都不能为空。
这是不正确的。 @OneToOne
关联可以是null
。所以你可以使用它
public class User {
@OneToOne
private TeacherInfo teacherInfo;
@OneToOne
private StudentInfo studentInfo;
}
您可以使用@Embedded
public class User {
@Embedded
private TeacherInfo teacherInfo;
@Embedded
private StudentInfo studentInfo;
}
即使是这样的方法@ManyToOne
或@OneToOne
class Teacher {
@ManyToOne
private User user;
}
class Student {
@ManyToOne
private User user;
}