LoginSignup
6
5

More than 5 years have passed since last update.

Play Framework 2.4 java ebean関連モデルのJson化

Last updated at Posted at 2016-01-19

Play Framework 2.4で関連したモデルをJsonにするとこでハマったのでメモ

発生した問題

OneToManyのモデルをtoJson()したらthrough reference chainというエラー。
参照のループになってしまうみたい。

対応方法

Json.toJson()を使う場合は以下のアノテーションが必要。

項目等を無視させたい場合

サンプル(Userが複数のMemoを持ってるとする)

HogeController.java

    public Result test() {
        return ok(Json.toJson(User.find.byId(1L)));
    }
User.java
@Entity @Table(name = "users")
public class User extends Model {

    @Id
    public Long id;

    public String name;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
    @JsonManagedReference
    public List<Memo> memos;

    public static final Find<Long, User> find = new Find<Long, User>(){};
}
Memo.java
@Entity @Table(name = "memos")
public class Memo extends Model {

    @Id
    public Long id;

    public String name;

    public String memo;

    @ManyToOne
    @JoinColumn(name = "user_id")
    @JsonBackReference
    public User user;
}
6
5
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
6
5