我有一個SQL查詢是這樣的:JPA加入表的SELECT
SELECT h.name, h.created_date, tbl.*
FROM my_table tbl
LEFT JOIN
(SELECT name, max(created_date) created_date FROM my_table GROUP BY name) h
ON tbl.name = h.name;
它從MY_TABLE與該名稱的最大CREATED_DATE一起返回行(它有多個名稱=「」)。
有沒有辦法在JPQL查詢中複製它?
這裏是實體類的要點,這是相當簡單:
@Entity
@Table(name = "MY_TABLE")
@XmlRootElement
public class MyTable implements Serializable {
private BigDecimal tableId;
private String name;
private Date createdDate;
// ...
@Id
@Basic(optional = false)
@Column(name = "TABLE_ID")
@GeneratedValue(generator = "TBL_ID_SEQ")
public BigDecimal getTableId() {
return tableId;
}
@Basic(optional = false)
@Column(name = "NAME")
public String getName() {
return name;
}
@Basic(optional = false)
@Column(name = "CREATED_DATE", insertable = false)
@Temporal(TemporalType.TIMESTAMP)
public Date getCreatedDate() {
return createdDate;
}
// ... getters/setters
}
和你的課是?因爲你知道JPQL是圍繞類/字段而不是表格/列 –
我確實知道這一點。我對jpa很新,說實話,我還不熟悉jpql。實體類將是myTable,我試圖加入的名稱字段是一個字符串。也許這不是可以直接完成的事情? – user5668766
也許我需要另一個實體類,只是返回最大日期和名稱字段?而不是嘗試使用同一個實體 – user5668766