gpt4 book ai didi

java - 在 HQL 查询上使用 HashSet 进行排序期间出现 Hibernate 异常 : org. hibernate.exception.SQLGrammarException:无法使用滚动执行查询

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:05 25 4
gpt4 key购买 nike

我正在尝试获取通过 HQL 查询订购的商品列表。问题是排序是在对象的 HashSet 上完成的(或者由 ab.clienti.errIndirizzos 进行,其中 errIndirizzos 是在类 Clienti 上设置的 HashSet>),当我尝试进行排序时, hibernate 会返回异常

Clienti.java:

public class Cliente implements java.io.Serializable {
//declaration var
private Set errIndirizzos = new HashSet(0);`
.....
}

Cliente.hbm.xml

<set name="errIndirizzos" inverse="true" >
<key>
<column name="ID_CLIENTE" precision="18" scale="0" />
</key>
<one-to-many class="ErrIndirizzo" />
</set>

其中表 ERR_INDIRIZZO 和 CLIENTE 具有唯一键“ID_CLIENTE”

HQL查询顺序:

order by le.cliente.errIndirizzos

其中 le 是另一个包含 Clienti 的表

LetteraCliente.java

public class Letteracliente implements java.io.Serializable {
.....
private Cliente cliente
......
}

letteraCliente.hbm.xml

<one-to-one name="cliente" class="it.allianz.images.bean.postaMassiva.Cliente" constrained="true"></one-to-one>

错误:

org.hibernate.exception.SQLGrammarException: could not execute query using scroll

有什么建议吗?提前致谢

最佳答案

尝试使用隐式连接:

select distinct le
from Letteracliente le
inner join le.cliente c
inner join c.errIndirizzos e
order by e.id

使用 INNER JOIN 还将过滤所有不含 ClienteErrIndirizzoLetteracliente。如果 id 不是您想要的,您可以为 ORDER BY 选择其他属性。

关于java - 在 HQL 查询上使用 HashSet 进行排序期间出现 Hibernate 异常 : org. hibernate.exception.SQLGrammarException:无法使用滚动执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27961936/

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