软件<-m:n->标签
我想为选择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);因此,我有:
A java.lang.IllegalArgumentException已被捕获,org.hibernate.QueryException:非法尝试使用元素属性引用id取消引用收集software0_.id.tags
我怎样才能实现它?为什么我会有这样的例外?
发布于 2011-04-06 09:16:32
我认为问题可能是你在陈述中漏掉了FROM子句。给出“意外令牌:内部”错误是因为它需要一个FROM。
尝试以下查询:
SELECT DISTINCT s FROM Software s INNER JOIN s.tags t WHERE t.id = :tagId发布于 2011-04-06 09:43:10
我试着:
Query q = JPA.em().createQuery("SELECT DISTINCT s FROM Software s join fetch s.tags t WHERE t.id = :tagId");
q.setParameter("tagId", tagId);这应该能行。
https://stackoverflow.com/questions/5563871
复制相似问题