public class ProductNode {
private Set<ProductType> productTypes = new HashSet<ProductType>();
@CollectionOfElements
public Set<ProductType> getProductTypes() {
return productTypes;
}
}
ProductType — это просто enum
Таблиц в БД, естественно, две — ProductNode и ProductNode_ProductType. Во второй хранятся пары productnode_id и enum значения
Теперь есть некий иной
Set<ProductType> typeSet;
Надо сделать запрос, который вернул бы все ProductNode, у которых productTypes содержит хотя бы один элемент из typeSet. Иными словами, вернут те ProductNode, для которых пересение этих сетов непустое.
Если бы ProductNode_ProductType была отдельным классом , то проблем бы не было — простой IN. Но такого класса нет, и делать его не хочется.