Sam*_*ami 3 jpa named-query eclipselink
我想在JPA中进行此查询:
SELECT * FROM `happyDB`.`users` U WHERE U.party_as_user =1 AND U.party_party_id =2
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我的问题是我Party只作为一个对象,而不是一个id,我不能使它工作.
在Users我尝试执行命名查询的-entity中,我有以下内容:
@JoinColumn(name = "pary_party_id", referencedColumnName = "party_id")
@ManyToOne
private Party partyId;
@Column(name = "party_as_user")
private Boolean partyAsUser;
Run Code Online (Sandbox Code Playgroud)
我尝试将它实现为带点符号的对象,但这不起作用:
@NamedQuery(name = "Users.findByPartyAsUser", query = "SELECT u FROM Users u WHERE u.partyAsUser = :partyAsUser AND u.partyId.partyId = :partyId")
Run Code Online (Sandbox Code Playgroud)
partyId在Party-object中有一个叫做属性的属性,但是它没有用.是否有任何解决方案,或者我必须向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);
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用正确的变量名称,您所拥有的应该是有用的,我的猜测是,
SELECT u FROM Users u WHERE u.partyAsUser = :partyAsUser AND u.party.id = :id
Run Code Online (Sandbox Code Playgroud)
如果您比对象更了解SQL,则可以始终使用本机SQL查询.
| 归档时间: |
|
| 查看次数: |
7140 次 |
| 最近记录: |