У меня есть рефакторинг задач мой код, чтобы использовать JPA ElementCollection вместо CollectionOfElements устаревшего.
Я вижу следующую трассировку стека:
org.hibernate. MappingException: не Мог определить тип для: java.util. Набор, за столом: UserFilter, для колонок: [org.hibernate.mapping. Колонка (элемент)]
в org.hibernate.mapping. SimpleValue.getType(SimpleValue.java:292)
в org.hibernate.mapping. SimpleValue.isValid(SimpleValue.java:276)
в org.hibernate.mapping. Property.isValid (Собственность java:207)
в org.hibernate.mapping. PersistentClass.validate(PersistentClass.java:458)
в org.hibernate.mapping. JoinedSubclass.validate(JoinedSubclass.java:63)
в org.hibernate.cfg. Configuration.validate (Конфигурация java:1149)
в org.hibernate.cfg. Configuration.buildSessionFactory (Конфигурация java:1334)
в org.hibernate.cfg. AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
Измененный код в UserFilter ниже:
//@CollectionOfElements
@ElementCollection(targetClass = String.class)
@CollectionTable(name="UserFilter_orgUnits", [email protected](name="UserFilter_FILTER_ID"))
@Column(columnDefinition = "varchar(255)", name="element")
private Set orgUnits = new HashSet();
Я определяю название объединяющей таблицы и имя столбца для назад совместимости.