Criteria API在Select语句中创建新对象

时间:2013-01-14 09:51:08

标签: java jpa-2.0 jpql criteria-api

我现在可以使用标准api在select语句中创建新对象,使用类似

的代码
CriteriaBuilder cb...
CriteriaQuery<Wrapper> q = cb.createQuery(Wrapper.class);
  Root<SuperClass> c = q.from(SuperClass.class);
  q.select(cb.construct(Wrapper.class,c.get("name")));

但我想知道是否可以使用条件api

创建查询
select new Wrapper(p.name, type(p)) FROM SuperClass p

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不知道我是否正确理解了您的问题,但您可以使用HQL创建类似的东西,至少使用hibernate。您可以看到更多here

就像你表现的那样。来自Hibernate HQL Doc:

select new Family(mother, mate, offspr)
    from DomesticCat as mother
    join mother.mate as mate
    left join mother.kittens as offspr

希望这会有所帮助。