LoginSignup
2
0

More than 5 years have passed since last update.

Play Framework勉強めも 複数Modelの連携/ModelをOne To Many・Many To Oneで連携する

Posted at

Memberクラスの変更

・messageのList型のフィールドを追加&初期化
・toStringにList内に保管されている、Messageのidをまとめて表示する機能を追加
(参考Listと配列の違い)https://eng-entrance.com/java-array-list

    @OneToMany//①
    public List<Message> message = new ArrayList<Message>();

    @Override
    public String toString() {
        String ids = "{id:";//②
        for(Message m : messages){//③
            ids + = " " + m.id;//④
        }
        ids + = "}";//④
        return ("[id:" + id + ",message"+ids+",name:" + name + ",mail:" + mail + ",tel:" + tel + "]");
    }

①:このアノテーションにより、そのフィールドが1対多対応のModelである事を示す。
②:変数idsに{id:を代入
③:拡張for文で、配列変数messagesをmへ代入
④:変数idsにm(message)のidを追加
⑤:最後に }を追加

Messageクラスの変更

    @ManyToOne(cascade = CascadeType.ALL)//①
    public Member member;

①:このアノテーションにより、そのフォールドが多対1対応の関連付けのModelである事を示す。
多対1である事は、多数のエンティティに対応しなければならないため、ListやCollectionクラスを用意する。

動作内容

初期画面

何も入力されてない状態
スクリーンショット 2018-05-04 17.16.40.png

メンバー情報を入力する

メンバー情報を登録する。
スクリーンショット 2018-05-04 17.17.19.png

登録したメンバー名でメッセージを入力する

cascadeの設定により、MemberテーブルにもMessageのIDが表示される。
スクリーンショット 2018-05-04 17.17.47.png

さらに登録したメンバー名でメッセージを入力する

MemberテーブルのID情報が増えている。
スクリーンショット 2018-05-04 17.18.23.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0