好的,我已经用注释映射了两个具有双向@ManyToMany关系的表。
现在我想只返回不在多对多关系中的元素,并且我正在尝试使用here中的代码,但它在运行时抛出异常。 这是HQL:
String hql = "select a from Article a " +
"left join a.tags t " +
"group by a " +
"having count(t)=0";
有没有更好的方法来返回这些元素?或者修复此查询中的错误?
它现在抛出的例外是:
column "article0_.id" must appear in the GROUP BY clause or be used in an aggregate function
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL ...
答案 0 :(得分:2)
查询是正确的,但在某些数据库上group by a
是不够的,您必须使用a
的所有属性,例如group by a.id, a.title
。
或者,您可以使用以下查询:
select a from Article a where a.tags is empty
另见:
答案 1 :(得分:1)
不确定它是否可行,但你可以尝试一下:
String hql = "select a from Article a " +
"where a.tags=null ";