1

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

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 时,我可以看到管理员的名字。但是当我使用视图渲染将 Java 对象传递给 Scala 时,如果这样做@admin.user.id,我仍然可以获得 id,但如果这样做@admin.user.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 回答