gpt4 book ai didi

java - JPQL 内部类型转换

转载 作者:行者123 更新时间:2023-12-01 13:46:39 26 4
gpt4 key购买 nike

Item实体已扩展到另一个具有Vmp属性的Entity Amp。如何在 Jpql 中查询 Vmp。我可以在 Jpql 中进行转换吗?

我使用了 Jpql,但没有像这样进行转换。

select i from Stock i where i.stock >:s and i.department=:d and i.itemBatch.item.vmp=:vmp order by i.itemBatch.item.name

ItemBatch 具有 Item 类的属性,但我仅收回 Amp 实体,它扩展了 Item 类。只有Amp具有Vmp的属性。所以上面的 Jpql 给出了以下错误。

Caused by: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
Exception Description: Problem compiling [select i from Stock i where i.stock >:s and i.department=:d and i.itemBatch.item.vmp=:vmp order by i.itemBatch.item.name].
[85, 105] The state field path 'i.itemBatch.item.vmp' cannot be resolved to a valid type.

我可以像下面这样在 Jpql 中进行转换吗?还有其他解决方法吗?

select i from Stock i where i.stock >:s and i.department=:d and  Atm(i.itemBatch.item).vmp=:vmp order by i.itemBatch.item.name

最佳答案

我找到了方法,必须使用treat而不是cast。这是Jpql

jpql = "select i from Stock i join treat(i.itemBatch.item as Amp) amp where i.stock >:s and i.department=:d and amp.vmp=:vmp order by i.itemBatch.item.name";

关于java - JPQL 内部类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318331/

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