簡體   English   中英

使用@ManyToOne對象的JPA查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM