我在用JPQL进行查询时遇到问题。我有一张桌子供许多人参考:

@Entity
@Table(name = "item")
public class Item  extends BaseModel implements Serializable {
    @Column(name = "id")
    public INteger id;

    @ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
    public Set<Item> itemsRelated;

}


我正在尝试进行以下查询:

Select * from Item where  itemsRelated=null


要么
从itemRelated为null的项目中选择*

但是它抛出了这个异常:

play.exceptions.JavaExecutionException:从Item执行查询时出错,其中whereItemRelated = createDate desc按null排序:'where子句'中的'qualified'未知列
在play.mvc.ActionInvoker.invoke(ActionInvoker.java:237)
在Invocation.HTTP Request(播放!)

谁能帮我?

更新:

Java调用:

Item.find(query.toString()+" order by createDate desc").fetch(page, itemsPerPage);


此时,“查询”具有“ itemsRelated为空”

最佳答案

itemsRelated是一个集合,您必须检查集合的大小-不要期望它是null。尝试

select i from Item i where i.itemsRelated is empty


http://docs.oracle.com/cd/E17904_01/apirefs.1111/e13946/ejb3_langref.html#ejb3_langref_empty_comp

编辑:使用别名完成查询

10-06 07:27