0

Hibernateエンティティクラスで次のタイプの関係を作成するには? ユーザーは、メッセージ (送信者、受信者、メッセージ) を作成して、別のユーザーにメッセージを送信します。DB は次のようになります。

+-----------------------------------+
|                user               |
+-----------------------------------+
| id |   nickname  |    password    |
+----+-------------+----------------+
|  1 |    admin    |      pass      |
+----+-------------+----------------+

+------------------------------------------------+
|                     message                    |
+-----------------------------------|------------+
| id |  sender_id  |  receiver_id   |  message_t |
+----+-------------+----------------+------------+
|  1 |      10     |       12       |      hi    |
+----+-------------+----------------+------------+

エンティティ クラスはどのように見える必要がありますか?

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

    @Id
    @Column(name="id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(name = "sender")
    private User sender;

    @ManyToOne
    @JoinColumn(name = "receiver")
    private User receiver;

    @Column(name = "message")
    String message;
}

@Entity
@Table(name = "users")
public class User {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(mappedBy = )
    List<Message> messages;
}

によってマッピングされた..何?現在のユーザーが送信者 OR/AND 受信者として存在するすべてのメッセージを検索する必要があります。(「AND」は、ユーザーが自分自身にメッセージを送信できるためです)。

4

1 に答える 1