当发生以下情况时,我想在TASK表上添加左连接:LEFT JOIN FETCH PROMPT p on(t.id = p.task.id 和p.applicationName in(''XXX'))
这是我的hql查询:
select
distinct t
from
TASK t
LEFT JOIN FETCH
SERVER ser
on t.id=ser.task_id
LEFT JOIN FETCH
APPLICATION app
on ser.id=app.server_id
LEFT JOIN FETCH
PROMPT p on (t.id = p.task.id and p.applicationName in ('XXX'))
where
t.id=ser.task.id
and ser.id=app.server
and app.name in ('XXX')
order by t.id
Run Code Online (Sandbox Code Playgroud)
我得到以下异常,可能是由于"on"关键字:
java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:771)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
class Task {
private String taskId;
private Set<ServerDetails> servers;
}
class ServerDetails {
private String id;
private Set<ApplicationDetails> …Run Code Online (Sandbox Code Playgroud)