我上了两节课。一个名为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;



请参考以下教程。

Doc1Doc2

07-24 13:39