ERROR: Path expected for join! Path expected for join! 关于左连接的一个错误
今天在运行一个左连接(LEFT JOIN)程序时出现如下错误
ERROR: Path expected for join!
Path expected for join!
ERROR: Path expected for join! Path expected for join! ERROR: right-hand operand of a binary operator was null right-hand operand of a binary operator was null出现的错误和这个错误即为类似
这个错误大概意思就是说我们的hql代码似乎写错了
如我这里的hql代码如下
String hql = "from article ar left join articlefl arfl where ar.arfenlei=arfl.arflid and ar.arid=?";以上代码想表达的意思是左连接
两个表 article articlefl ,注意这里的表名是实体中定义的注解@Entity(name="article")
他们的别名分别是 ar 和 arfl
但是这里这样写,如果不在实体中做相应处理,就会出现上面的错误。
那么我们应该如下处理以满足我们的左连接查询方式
第一步,需要在实体中设定外键,如下代码
private Articlefl arfl; //延迟加载 @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="arflid") public Articlefl getArfl() { return arfl; } public void setArfl(Articlefl arfl) { this.arfl = arfl; }第二部,hql应该修改为如下代码
String hql = "from article ar left join ar.arfl arfl where ar.arfenlei=arfl.arflid and ar.arid=?";上面的代码中 ar.arfl 就相当于获得了一个articlefl,where后面就是左连接的条件
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情