2017-10-06 71 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