我上了两节课。一个名为person的类和一个名为group的类。现在,我创建了一个链接这些类的视图,并创建了一个带有@Immutual批注的类。
查看结果
| person_id | group_id |
| ----------|----------|
| 1 | 2 |
| 2 | 2 |
| 3 | 4 |
| ... | ... |
类人组
@Entity
@Table(name = "person_group")
@Immutable
public class PersonGroup {
@Id
@Column
private Person person;
@Column
private Group group;
public Person getPerson() {
return this.person;
}
public Group getGroup() {
return this.group;
}
}
现在我想将PersonGroup映射到Person和Group。像这样:
类人
@Entity
public class Person {
...
private PersonGroup group;
...
}
班组
@Entity
public class Group {
...
private Set<PersonGroup> person;
...
}
那可能吗?如果是,我应该使用哪些注释?我尝试了很多,但没有任何效果。
问候,
XY
最佳答案
如果要在PersonGroup
模型中使用Person
,则必须使用@Embeddable
批注将值类型对象嵌入到我们的Entity类中。
像这样 :-
@Entity
@Embeddable
@Table(name = "person_group")
@Immutable
public class PersonGroup {
.....
然后将注释@Embedded添加到
Person
类。像这样 :-
@Entity
public class Person {
...
@Embedded
private PersonGroup group;
如果要在
PersonGroup
模型中使用Group
方法,请使用@ElementCollection Annotationin组类,如下所示@Entity
public class Person {
...
@ElementCollection
private Set<PersonGroup> person;
请参考以下教程。
Doc1和Doc2