Я пытаюсь обновить свой проект с спящего режима 3.6 до 4.1.6, я думаю, что все банки находятся в нужном месте, ... и т. д., но теперь у меня есть это исключение ниже, поиск в Google не дал ответа. Мой код отлично работает в Hibernate 3.6, и я не уверен, что это проблема с моими сопоставлениями или что-то еще. Я настраиваю спящий режим 4.1 с Spring 3.1.2, используя подход JPA.
Caused by: org.hibernate.MappingException: Could not create DynamicParameterizedType for type: org.hibernate.type.EnumType
at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.java:398)
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:304)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:294)
at org.hibernate.mapping.Property.isValid(Property.java:238)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:469)
at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1294)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1738)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
... 55 more
Caused by: java.lang.ClassNotFoundException: char
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.mapping.SimpleValue.createParameterImpl(SimpleValue.java:389)
... 64 more
Обновление: я поставил точки останова в коде гибернации, где перехватывается это исключение, и нашел сопоставление, которое ему не нравится, вот оно ниже.
@Entity
@Table(name = "company_addresses")
public class CompanyAddress extends TimeStampedPersistableObject
{
public enum AddressType
{
PUBLIC('p'), SHAREHOLDER('s');
private final char typeCode;
AddressType(char typeCode)
{
this.typeCode = typeCode;
}
public static AddressType parse(char c)
{
for (AddressType addressType : AddressType.values())
{
if (addressType.value() == c)
{
return addressType;
}
}
return null;
}
public char value()
{
return typeCode;
}
}
@Column(name = "address_type")
@Enumerated(EnumType.STRING)
private char type;
org.hibernate.type.EnumType
? - person Oleksandr Bondarenko   schedule 29.08.2012