软件< -m:N->标签JPQL查询多对多
我想选择其中tag.id = ID
我写的所有软件创建查询:
TypedQuery query =
Software.em().createQuery(
"SELECT DISTINCT s FROM Software s INNER JOIN s.tags WHERE s.tags.id = :tagId",
Software.class
);
query.setParameter("tagId", tagId);
的结果我有:
了java.lang.IllegalArgumentException 被抓到, org.hibernate.QueryException:非法 试图取消引用集合 [software0_.id.tags]与元件 属性引用[ID] [SELECT DISTINCT 期从models.Software小号 INNER JOIN s.tags WHERE s.tags。 id = :tagId]
我该如何实现它?为什么我有这样的例外?
我修正了。也许,但是当我把我从我得到:java.lang.IllegalArgumentException已被捕获,org.hibernate.QueryException:非法尝试取消引用具有元素属性引用[id]的集合[software0_.id.tags] [SELECT DISTINCT s FROM模型。软件s INNER JOIN s.tags WHERE s.tags.id =:tagId] – ses 2011-04-06 09:32:42
试试这个:'SELECT DISTINCT s FROM Software s INNER JOIN s.tags t WHERE t.id =:tagId'。 – Elvander 2011-04-06 09:44:28