小编Ker*_*ren的帖子

Hibernate HQL:如何使用复杂的左连接提取

当发生以下情况时,我想在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)

hibernate hql

9
推荐指数
1
解决办法
4万
查看次数

标签 统计

hibernate ×1

hql ×1