我在用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
编辑:使用别名完成查询