1

Ebean で Play フレームワークを使用しています。私は2つのモデルを持っています、以下はコードです:

public class User extends Model {
    @Id 
    public Long id;

    public String name;
   /* rest of attributes */

    public static Finder<Long,User> find = new Finder<Long,User>(
          Long.class, User.class
    );
}

public class Admin extends Model {
    @Id 
    public Long id;

    @OneToOne
    public User user;
    /* rest of attributes */

    public static Finder<Long,Admin> find = new Finder<Long,Admin>(
        Long.class, Admin.class
    );
}

Logger.info(admin.user.name)Javaで行うと、管理者の名前が表示されます。しかし、view render を使用して Java オブジェクトを Scala に渡すと@admin.user.id、id を取得できますが、渡して@admin.user.nameも (エラーなしで) 何も得られません。結合されたテーブルから name 属性にアクセスするにはどうすればよいのでしょうか?

4

1 に答える 1

1

問題が解決しました。フェッチを行う前に、私はそうしました

Admin.find.where()
    .ilike("user.name", "%" + filter + "%")        
    .orderBy("user."+sortBy + " " + order)
    .findPagingList(pageSize)
    .getPage(page);  

に変更後

Admin.find.fetch("user", new FetchConfig().query())
    .where()
    .ilike("user.name", "%" + filter + "%")        
    .orderBy("user."+sortBy + " " + order)
    .findPagingList(pageSize)
    .getPage(page);  

インスタンス変数を Scala で表示することに成功しました。

于 2013-02-03T23:35:57.857 に答える