Java PlayFramework 2.x Ebean查询匹配集合中的许多属性
我有一个模型对象,如下所示:Java PlayFramework 2.x Ebean查询匹配集合中的许多属性,java,playframework,playframework-2.0,ebean,Java,Playframework,Playframework 2.0,Ebean,我有一个模型对象,如下所示: @SuppressWarnings("serial") @Entity @Table(name = "selections") public class Selection extends Model { .... @ManyToMany private Set<Market> markets; .... } 我知道我可以做一些事情,比如: return Selection.find().where().eq("m
@SuppressWarnings("serial")
@Entity
@Table(name = "selections")
public class Selection extends Model {
....
@ManyToMany
private Set<Market> markets;
....
}
我知道我可以做一些事情,比如:
return Selection.find().where().eq("markets.id", market.id).findList();
找到一个单一的市场对象-但是从集合中找到这些对象呢?没有在集合中迭代?我一直在努力解决同样的问题,在阅读之后,我得出了以下结论:
return Selection.find().where().in("markets",markets).findList();
// Prepare the OQL query string
String oql = "find selection " +
"where markets.id in (:marketList) " +
"group by id " +
"having count(distinct markets.id) = :marketCount";
// Create the query
Query<Selection> query = Selection.find.setQuery(oql);
// Set the list of market IDs
List<Long> marketIds = Arrays.asList(1, 30, 9, 15, 6);
// Set query parameters (list of market IDs and how many they are)
query.setParameter("marketList", marketIds);
query.setParameter("marketCount", marketIds.size());
// Get the matching results
List<Selection> selections = query.findList();
//准备OQL查询字符串
字符串oql=“查找所选内容”+
“其中markets.id位于(:marketList)”+
“按id分组”+
“拥有count(distinct markets.id)=:marketCount”;
//创建查询
查询=Selection.find.setQuery(oql);
//设置市场ID的列表
List-id=Arrays.asList(1,30,9,15,6);
//设置查询参数(市场ID列表及其数量)
query.setParameter(“marketList”,MarketId);
setParameter(“marketCount”,marketIds.size());
//得到匹配的结果
列表选择=query.findList();
我正在使用play2.4.2和sbt-playebean插件版本2.0.0,它提供avaje-ebeanrom版本6.8.1
对于一些额外的功能,您可能会对阅读感兴趣。我一直在努力解决同样的问题,在阅读之后,我得出以下结论:
// Prepare the OQL query string
String oql = "find selection " +
"where markets.id in (:marketList) " +
"group by id " +
"having count(distinct markets.id) = :marketCount";
// Create the query
Query<Selection> query = Selection.find.setQuery(oql);
// Set the list of market IDs
List<Long> marketIds = Arrays.asList(1, 30, 9, 15, 6);
// Set query parameters (list of market IDs and how many they are)
query.setParameter("marketList", marketIds);
query.setParameter("marketCount", marketIds.size());
// Get the matching results
List<Selection> selections = query.findList();
//准备OQL查询字符串
字符串oql=“查找所选内容”+
“其中markets.id位于(:marketList)”+
“按id分组”+
“拥有count(distinct markets.id)=:marketCount”;
//创建查询
查询=Selection.find.setQuery(oql);
//设置市场ID的列表
List-id=Arrays.asList(1,30,9,15,6);
//设置查询参数(市场ID列表及其数量)
query.setParameter(“marketList”,MarketId);
setParameter(“marketCount”,marketIds.size());
//得到匹配的结果
列表选择=query.findList();
我正在使用play2.4.2和sbt-playebean插件版本2.0.0,它提供avaje-ebeanrom版本6.8.1
对于一些额外的功能,您可能对阅读感兴趣。没有收到您的问题。您想通过id获得一个单一市场吗?或者通过什么?我试图找到所有的选择,这些选择与传递给该方法的集合中的任何市场都有很多关系。没有收到你的问题。您想通过id获得一个单一市场吗?或者通过什么?我试图找到所有与传递给该方法的集合中的任何市场有很多关系的选择。非常好-这适用于找到具有任何市场的选择。我想知道如何获得与所有市场有关系的选择?非常好-这适用于查找有任何市场的选择。我想知道如何获得与所有市场相关的选择?