我想在 JPA 中进行此查询:
SELECT * FROM `happyDB`.`users` U WHERE U.party_as_user =1 AND U.party_party_id =2
这工作正常,但我的问题是我有Party
只能作为一个对象,而不是一个 id,我无法让它工作。
In the Users
- 我尝试执行命名查询的实体我有以下内容:
@JoinColumn(name = "pary_party_id", referencedColumnName = "party_id")
@ManyToOne
private Party partyId;
@Column(name = "party_as_user")
private Boolean partyAsUser;
我尝试像使用点表示法的对象一样实现它,但这不起作用:
@NamedQuery(name = "Users.findByPartyAsUser", query = "SELECT u FROM Users u WHERE u.partyAsUser = :partyAsUser AND u.partyId.partyId = :partyId")
有一个属性叫partyId
在 - 的里面Party
-对象,但它不起作用。有没有解决方案,或者我是否必须向 Users-bean 添加一个属性,例如private int partyID
并在每次有新的时填充它Party
被插入到Users
?
感谢您的帮助!
萨米·努尔米
一般来说,你可以在JPA中使用对象作为参数,
SELECT u FROM Users u WHERE u.partyAsUser = :partyAsUser AND u.party = :party
Party party = new Party(id);
query.setParameter("party", party);
但是,如果您使用正确的变量名称,您所拥有的应该可以工作,我的猜测是,
SELECT u FROM Users u WHERE u.partyAsUser = :partyAsUser AND u.party.id = :id
如果您比对象更了解 SQL,那么您始终可以使用本机 SQL 查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)