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