Update: смотрите мой ответ ниже, как проверить, если 2 список пересекается (как для @ElementCollection
со струнными/перечислениями и обычным списком субъектов, отображенных как @OneToMany
)HQL. Пересечение двух списков
У меня есть объект, который содержит @ElementCollection
поля с перечислениями.
public enum StatusType {
NEW, PENDING, CLOSED;
}
@Entity
public class MyEntity {
@ElementCollection
@CollectionTable(name = "status_type", joinColumns = {@JoinColumn(name = "my_entity_id")})
@Column(name = "status_type", nullable = false)
private Set<StatusType > statusTypes = new HashSet<StatusType >();
...
}
Теперь я хочу, чтобы получить все объекты, которые содержат статус NEW
или PENDING
(или оба).
Я пытаюсь использовать этот запрос:
SELECT DISTINCT u FROM MyEntity u WHERE u.statusTypes in :statusTypes
Но я получаю исключение: org.postgresql.util.PSQLException: No value specified for parameter 9.
Как правильно запрашивать по коллекциям и фильтру по перекресткам?