0

我在重构代码以使用 JPA ElementCollection 而不是已弃用的 CollectionOfElements 时遇到问题。我看到以下堆栈跟踪:

org.hibernate.MappingException:无法确定类型:java.util.Set,表:UserFilter,列:[org.hibernate.mapping.Column(element)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue .java:292) 在 org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276) 在 org.hibernate.mapping.Property.isValid(Property.java:207) 在 org.hibernate.mapping.PersistentClass.validate( PersistentClass.java:458) 在 org.hibernate.mapping.JoinedSubclass.validate(JoinedSubclass.java:63) 在 org.hibernate.cfg.Configuration.validate(Configuration.java:1149) 在 org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1334) 在 org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)

UserFilter 中更改的代码如下:

//@CollectionOfElements
@ElementCollection(targetClass = String.class)
@CollectionTable(name="UserFilter_orgUnits", joinColumns=@JoinColumn(name="UserFilter_FILTER_ID"))
@Column(columnDefinition = "varchar(255)", name="element")
private Set<String> orgUnits = new HashSet<String>();

我正在指定连接表名和列名以实现向后兼容性。

4

0 回答 0