coo*_*ler 6 ebean playframework-2.0
我正在使用Play 2.0.2和ebean.
在Info课堂上,我定义了
@ManyToMany(fetch=FetchType.EAGER)
private Set<MemberInfo> members;
private Date createdDate = new Date();
Run Code Online (Sandbox Code Playgroud)
并MemberInfo有memberId领域.
当我做
public static Finder<Long,Info> find
= new Finder<Long,Info>(Long.class, Info.class);
find.fetch("members")
.where().filterMany("members").eq("memberId", memberId)
.order().desc("createdDate")
.findList();
Run Code Online (Sandbox Code Playgroud)
它返回所有的Info,不检查memberId的members.
我做错了什么?谢谢.
filterMany() 不会按子项的表达式过滤父结果(两者都有单独的'范围').
作为descriped 它的API中它会找到所有的 Info对象和过滤members每个.
Google网上论坛上的主题也非常相似,问题的作者为此提供了自己的解决方法.
检查之间的区别:
find.fetch("members")
.where().filterMany("members").eq("memberId", 1L)
.findList();
Run Code Online (Sandbox Code Playgroud)
和
find.fetch("members")
.where().eq("members.memberId", 1L)
.findList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2470 次 |
| 最近记录: |