我观察到与 Hibernate 4.3.1 和 Spring 4.0.2 相同的问题
我的解决方法是将 JPA 配置注释从 package-info.java 移动到其中一个类。
似乎这不起作用,因为DefaultPersistenceUnitManager#entityTypeFilters
被初始化为仅具有以下 JPA 注释的过滤器类:
entityTypeFilters = new LinkedHashSet<TypeFilter>(4);
entityTypeFilters.add(new AnnotationTypeFilter(Entity.class, false));
entityTypeFilters.add(new AnnotationTypeFilter(Embeddable.class, false));
entityTypeFilters.add(new AnnotationTypeFilter(MappedSuperclass.class, false));
try {
@SuppressWarnings("unchecked")
Class<? extends Annotation> converterAnnotation = (Class<? extends Annotation>)
DefaultPersistenceUnitManager.class.getClassLoader().loadClass("javax.persistence.Converter");
entityTypeFilters.add(new AnnotationTypeFilter(converterAnnotation, false));
}
catch (ClassNotFoundException ex) {
// JPA 2.1 API not available
}