我有一个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