![](/img/trans.png)
[英]JPA - ManyToOne: Join columns and query tables without using whole Object
[英]JPA query with @ManyToOne object
我有這些JPA對象:
public class BB {
// ...
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date")
protected Date date;
// ...
}
public class B extends BB {
// ...
/**
* The referred a.
*/
@ManyToOne(optional = false)
private AA a;
// ...
}
public class A extends AA {
// ...
private String ID;
}
現在,我想使用JPA執行以下查詢:
SELECT * FROM A as a INNER JOIN B as b ON a.ID = b.A_ID ORDER BY b.date
我試過了:
StringBuilder builder = new StringBuilder("SELECT a FROM ").
append(A.class.getSimpleName()).
append(" a JOIN ").
append(B.class.getSimpleName()).
append(" b").
append(" WHERE 1=1 ORDER BY b.date");
Query query = entityManager.createQuery(builder.toString());
query.getResultList();
但它不起作用,它給了我一個
"Encountered \"\" at character 36, but expected: [].\" while parsing JPQL \"SELECT a FROM A a JOIN B b WHERE 1=1\". See nested stack trace for original parse error."
錯誤。
你能幫我嗎? 我不是JPA專家。
謝謝
您需要加入一個字段,而不是一個實體:請嘗試JOIN aB b
如果存在,或在必要時以其他方式編寫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.