SELECT *
FROM (SELECT van_num vn,
berth_from berth,
first_line_ashore_time first
FROM iportman.ipt_pilotagerecord pilot
WHERE ( Month(first_line_ashore_time) = 6
AND Year(first_line_ashore_time) = 2013 )
AND operation_movement = 'BERTHING') tab1
LEFT JOIN (SELECT van_num vn,
berth_from berth,
last_line_cast_off last
FROM iportman.ipt_pilotagerecord pilot
WHERE ( Month(last_line_cast_off) = 6
AND Year(last_line_cast_off) = 2013 )
AND operation_movement = 'UNBERTHING') tab2
ON tab1.vn = tab2.vn
我想在JPQL中执行上述查询。我们正在使用JPA 2.0(Eclipselink 2.4.2)。 请帮我将SQL查询转换为JPQL。
提前致谢
答案 0 :(得分:1)
请注意,JPA允许您执行本机SQL查询。对于这种复杂的事情,这可能是最好的。
否则,你需要考虑对象,而不是数据,你的对象模型是什么,你想要回到什么对象?首先用英语编写查询,然后从那里开始。
JPA规范不允许在from子句中进行子选择,尽管EclipseLink确实对此有一些支持。不确定你的查询确实需要这样做,但它看起来要复杂得多。