繁体   English   中英

单向一对多关联的条件查询,搜索实体列表

[英]Criteria Query for Unidirectional one to many association, searching with list of entities

我有包含持有人实体的集合(OneToMany)的实体。 一个人不知道它属于哪个集合。 我想搜索包含特定人员的 MyPersons 实体。 问题是,当我有需要映射到 MyPerson 实体的人员列表时,我不知道如何使用条件进行搜索。 请原谅我的英语不好。 我希望有人能帮帮忙。

 data=Collection.stream().filter(f->f.getName().equals("name")).forEach(i->{ System.out.println(); });

我找到了一个解决方案:

final CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<MyPersons> query = builder.createQuery(MyPersons.class);
Root<MyPersons> root = query.from(MyPersons.class);
Join<MyPersons, MyNaturalPerson> join = root.join("persons");
ParameterExpression<Collection> persons = builder.parameter(Collection.class);
//Persons = filled with MyPerson Entities
query.where(join.in(persons));
TypedQuery<MyPersons> tq = session.createQuery(query);
List<?> resultList = tq.setParameter(persons, result).getResultList();
List<MyNaturalPerson> finalresult = (List<MyNaturalPerson>) resultList;

感谢一个非常相似的问题/问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM