簡體   English   中英

JPA查詢-JOIN子句

[英]JPA Query - JOIN Clause

我有兩個表表A表B

表A包含

X列Y列Z列W列

表B包含

P列Q列R列W列

W和W列在兩個表中都相同。

及其實體

第一實體

@Entity
@Table(name = "A")
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TableA extends AbstractBaseEntity {

    @Id
    @NotNull
    @Column(name = "X")
    private Long sampleId1;

    @Id
    @NotNull
    @Column(name = "Y")
    private Long sampleId2;

    @Id
    @NotNull
    @Column(name = "Z")
    private Date sampleDate3;

    @ManyToOne(targetEntity = TableB.class)
    @JoinColumn(name = "W")
    private TableB tableB;

    ...
    getter
    setter
    ....
}

第二實體

@Entity
@Table(name = "TableB")
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TableB extends AbstractBaseEntity {

    @Id
    @NotNull
    @Column(name = "W")
    private Long sampleId4; 

    @Id
    @NotNull
    @Column(name = "P")
    private Long sampleId1;

    @Id
    @NotNull
    @Column(name = "Q")
    private Long sampleId2;

    @Id
    @NotNull
    @Column(name = "R")
    private Long sampleId3;

    ...
    getter
    setter
    ....
}

我有一個接口,其中所有查詢都被寫入

    Public interface sqlquery{

          String query1 = "from TableA ORDER BY" +
                sampleDate3 asc;";

          String query2= "from TableB";

}

現在,我正在這些查詢中分別獲取所有數據,我需要一些幫助來編寫一個新的單個查詢,在其中應使用JOIN子句在相同的ID(即SampleId4(W列))的基礎上顯示數據,以及在何處。 並將數據存儲在結果列表中。

您的映射沒有多大意義。 如果表B中的所有列都是ID的一部分,則可能意味着您可能在其中包含幾行,在W列中具有相同的值。因此,如果表A中的一行具有此共享值,則它實際上引用了所有表B的這些行。因此,在TableA和TableB之間沒有ManyToOne關聯。

關於您的查詢,由於映射首先是錯誤的,所以我看不到如何寫。 即使可以,也請結束,您應該告訴我們查詢應該返回什么,因為這還不清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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