У меня есть две спящие карты A и B.
A имеет 2 коллекции сущности B, и я хотел бы отфильтровать каждую коллекцию на основе свойства, хранящегося в B (как показано в коде ниже).
@FilterDefs()
class A{
@OneToMany(mappedBy = "productType", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Filter(name = "something", condition = "entityType = 'SKU1'")
Set<B> set1 = new HashSet<B>();
@OneToMany(mappedBy = "productType", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Filter(name = "something", condition = "entityType = 'SKU2'")
Set<B> set2 = new HashSet<B>();
}
class B{
@ManyToOne(cascade = CascadeType.ALL)
private A productType;
@Column(name = "entity_type")
@Enumerated(EnumType.STRING)
private EntityType entityType;
}
Отредактировано:
Я включаю фильтры, как предложено ниже в моем методе DAO. Однако я получаю следующее исключение
org.hibernate.exception.SQLGrammarException: не удалось инициализировать
коллекция
Если я использую метод быстрой загрузки, я получаю исключение, связанное с генерированием недействительного SQL?
Есть указатели?