gpt4 book ai didi

java - 在 JPA 2 中使用构造函数表达式时的 order by

转载 作者:行者123 更新时间:2023-12-01 11:34:56 24 4
gpt4 key购买 nike

作为 JSR-338 的一部分,出现了使用构造函数表达式的功能。问题是在使用构造函数表达式时如何使用 order by

给出示例 JPQL:

select com.acme.AggregatedInfo(
c,
(select status from Account where ssn = c.ssn)
)
from Customer c
where m.id in (:customerIdList)

还有 AggregateInfo 类

class AggregatedInfo {

private final Customer customer;
private final String status;

public AggregatedInfo(Customer customer, String status) {...}

// boilerplate javacode....
}

我从这样的 DAO 中使用它:

public List<AggregatedInfo> getAggregatedResult(final List<Long> customerIdList)
return em.createQuery(hql, AggregatedInfo.class)
.setParameters("customerIdList", customerIdList)
.getResultList();
}

如果我想按状态订购 - 如何通过 JPQL 完成此操作?

我尝试了以下方法但没有成功:

select com.acme.AggregatedInfo(
c,
(select status from Account where ssn = c.ssn)
) as a
from Customers c
where m.id in (:customerIdList)
order by c.status

但这不起作用。

可行吗?请解释一下。

最佳答案

尝试以下操作。它在 Hibernate 中的类似实现对我有用。它应该也适合你

public List<AggregatedInfo> getAggregatedResult(final List<Long> customerIdList)
return em.createNativeQuery(hql, AggregatedInfo.class)
.setParameters("customerIdList", customerIdList)
.getResultList();
}

entityManager.createQuery() 替换为 entityManager.createNativeQuery()

关于java - 在 JPA 2 中使用构造函数表达式时的 order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com