2017-10-06 56 views
0

的專欄中,我有兩個表:加入與條件JPA實體

person: 
- person_id 
- name 

meeting: 
- meeting_id 
- person_id 
- date 

一個人可以有很多的會議。對人我JPA實體的樣子:

@Entity 
@Table(name = "person") 
@Getter 
public class Person { 

    @Id 
    private Integer personId; 

    private String name; 

    @Formula("(SELECT m.date FROM meeting m WHERE ROWNUM <= 1 AND m.person_id = person_id ORDER BY m.date DESC)") 
    private Date lastMeetingDate; 

的問題是:如何上次會議日期包括到Person對象。上面的代碼會生成ORA-00936錯誤(我正在使用Oracle數據庫)。

SQL通過findPersonById() geneated:

select person0_.person_id as person_id1_10, person0_.name as name2_10, (SELECT m.date FROM meeting m WHERE ROWNUM <= 1 AND m.person_id = person0_.person_id ORDER BY m.date DESC) as formula0_ form person person0_ where person0_.person_id=? 
+0

什麼是ORA-00936? – Thomas

+0

在休眠狀態下打開SQL日誌併發布生成的輸出 –

+0

@ maciej-kowalski sql添加 – werasquez

回答

2

你應該嘗試:

SELECT max(m.date) FROM meeting m WHERE m.person_id = person_id