我正在使用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属性?
答案 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上成功显示了实例变量。