SpringJPA:我如何映射一个UserEnity,它有一个包含2个UserEnity字段的MessageEntity列表

SpringJPA:我如何映射一个UserEnity,它有一个包含2个UserEnity字段的MessageEntity列表,jpa,mapping,Jpa,Mapping,我有一个迷你信息应用程序。所以我创建了一个MessagineUnity类来存储两个用户之间的消息,看起来像这样 @Entity @Table(name = "Message") public class Message extends DefaultEntity { @Valid @ManyToOne(targetEntity = User.class) @JoinColumn(name="sender") private User sender;

我有一个迷你信息应用程序。所以我创建了一个MessagineUnity类来存储两个用户之间的消息,看起来像这样

 @Entity
@Table(name = "Message")
public class Message extends DefaultEntity {


    @Valid
    @ManyToOne(targetEntity = User.class)
    @JoinColumn(name="sender")
    private User sender;

    @Valid
    @ManyToOne(targetEntity = User.class)
    @JoinColumn(name="receiver")
    private User receiver;


    @NotNull
    private String message;

    @Enumerated(EnumType.STRING)
    private MessageStatus messageStatus;

    private Boolean isRead;
}
然后我有一个用户属性,看起来像这样:

@Component
@Entity
@Table(name = "Users")
public class User extends DefaultEntity {


    @Column(name = "FirstName")
    @NotNull(message = "Enter a FirstName")
    private String firstName;


    @Column(name = "LastName")
    @NotBlank(message = "Enter a LastName")
    private String lastName;


    @Column(unique = true,name = "UserName")
    @NotBlank(message = "Enter a UserName")
    private String userName;

     }

我觉得我没有很好地映射它,因为我的应用程序中的代码有问题,尤其是因为我知道我没有正确地映射到onetoone,oneto-many或many-to-many中,因为我不知道如何处理它。但是一条消息有两个用户,他们可以不断地在他们之间发送消息,所以一个用户应该有一个MessageEntity的列表。

我建议阅读这本书:IMHO这是关于JPA2I的最好的书。我在这篇文章中找到了答案: