Как добавить условие для типа списка в TypedQuery
У меня есть сущность со следующими атрибутами:
@Table(name = "MY_TABLE")
public class MyTable {
......
@OneToMany(mappedBy = "mytable", cascade = ALL, orphanRemoval = true)
private List<MyAnotherTable> otherTableValues = new ArrayList<MyAnotherTable>();
......
}
Сейчас я пытаюсь написать HSQL как
TypedQuery<Share> q =
getEntityManager().createQuery("SELECT MyTable FROM MyTable AS mytable WHERE " +
"mytable.someField=:firstParam AND mytable.secondField IS NOT NULL AND " +
// "AND mytable.otherTableValues"
, Share.class);
q.setParameter(firstParam, firstVal);
return q.getResultList();
Так что не уверен, как поставить consition на otherTableValues, так как это тип списка. Любое предложение?
1 ответ
Решение
Вы должны присоединиться к коллекции:
SELECT DISTINCT mytable
FROM MyTable AS mytable join mytable.otherTableValues AS otv
WHERE mytable.someField = :firstParam
AND mytable.secondField IS NOT NULL
AND otv.someOtherField = :someOtherField