我使用谷歌应用程序引擎。当我尝试执行如下 JPA 查询时:
SELECT p FROM Participant p
WHERE p.party.id = :partyKey AND p.name=:participantName
我收到以下错误
Caused by: org.datanucleus.store.appengine.FatalNucleusUserException:
SELECT FROM Participant p WHERE p.party.id = :partyKey AND p.name=:participantName:
Can only reference properties of a sub-object if the sub-object is embedded.
我将 Party 对象的密钥作为参数提供给“partyKey”命名参数。
模型是这样的:Party有多个参与者。
我想根据聚会和参与者的姓名查询参与者。我只是不知道如何使用派对进行过滤。我有什么选择?
我还尝试过以下查询:
SELECT FROM Participant p
WHERE p.party = :party AND p.name=:participantName
但它会导致以下错误:
Caused by: org.datanucleus.store.appengine.FatalNucleusUserException:
SELECT FROM Participant p WHERE p.party = :party AND p.name=:participantName:
Key of parameter value does not have a parent.
您可以通过声明parent-pk字段来执行祖先查询。然后,您可以使用该字段过滤子对象。检查有关“parent-pk”的部分文档(并sure读书这次讨论).
Update:对于 JPA,似乎你会这样声明:
@Extension(vendorName="datanucleus", key="gae.parent-pk")
private Long parentId;
您可能还想阅读通过关键参数查询博客文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)