軟件< -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