播放框架scala获取连接表属性

时间:2013-02-01 03:16:10

标签: java scala playframework ebean

我正在使用Play框架和Ebean。我有两个模型,下面是代码:

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
    );
}

当我在Java中Logger.info(admin.user.name)时,我可以看到管理员的名字。但是当我使用视图渲染将Java对象传递给Scala时,如果我@admin.user.id,我仍然可以获得id,但如果我@admin.user.name,我什么也得不到(没有错误)。我只是想知道如何从连接表中访问name属性?

1 个答案:

答案 0 :(得分: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上成功显示了实例变量。