gpt4 book ai didi

java - 如何使用 JPA 1.0 构建 JPQL 查询从多个表中获取数据以克服惰性初始化?

转载 作者:行者123 更新时间:2023-11-29 05:19:49 25 4
gpt4 key购买 nike

我需要使用基于 OpenJPA JPA 1.0 的 JPQL 查询从多个表中获取数据。使用自然连接构建和执行查询是可行的,但由于延迟初始化,我没有在结果中获得相关对象。

query=" SELECT ledger from SdiOrderSkuLedger ledger, SdiOrderSku sOrderSku, 
OrderSkuImpl orderSku, ProductSkuImpl productSku
WHERE ledger.sdiOrderSku.uidPk=sOrderSku.uidPk
AND sOrderSku.orderSku.uidPk=orderSku.uidPk
AND orderSku.productSkuInternal.uidPk=productSku.uidPk
AND ledger.createdDate between :startDate AND :endDate
AND productSku.uidPk IN (:ids)

我可以使用 join fetch 构造查询(在这个项目的其他情况下,join fetch 对我有用):

query=" SELECT ledger from SdiOrderSkuLedger ledger
join fetch ledger.sdiOrderSku sOrderSku
join fetch sOrderSku.orderSku orderSku join fetch orderSku.productSkuInternal productSku
WHERE ledger.sdiOrderSku.uidPk=sOrderSku.uidPk
AND sOrderSku.orderSku.uidPk=orderSku.uidPk
AND orderSku.productSkuInternal.uidPk=productSku.uidPk
AND ledger.createdDate between :startDate AND :endDate
AND productSku.uidPk IN (:ids)

然后我得到错误:

org.apache.renamed.openjpa.persistence.ArgumentException:在字符 76 处遇到“sOrderSku”,但应为:[“,”,“。”,“GROUP”,“HAVING”,“INNER”,“JOIN” , "左", "顺序", "哪里", ]。 在 org.apache.renamed.openjpa.kernel.jpql.JPQL.generateParseException(JPQL.java:9501)

最佳答案

错误在第 52 个字符处遇到“fetch”,但应为:[",", ".", "AS", "GROUP", "HAVING", "INNER", "JOIN", "LEFT ", "订购", "地点", , ]。 at 是因为您的 JPQL 中有一个“,”。

从 SdiOrderSkuLedger ledger, 的 SELECT 分类帐中删除“,”

关于java - 如何使用 JPA 1.0 构建 JPQL 查询从多个表中获取数据以克服惰性初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453319/

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