У меня есть класс User и класс сотрудника, в котором расширяется класс сотрудника и класс User.Кроме того, у меня есть класс адресов, который является отношением HAS-A к обоим классам.Ниже приведены классы реализации и ошибки.Я получаю сообщение об ошибке.
Модель пользователя
public class User {
private int userid;
private String username;
private String password;
private Date dob;
private String gender;
private Set<Address> addresses;
//getter and setters
}
Модель сотрудника
public class Employee extends User {
private Date joindate;
private String role;
private Branch branch;
//getter and setters
}
АдресМодель
public class Address {
private String email;
private String mobile;
private String street;
private String city;
private String state;
private String country;
private String pin;
//getter & setters
}
users.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.alok.mypro.model.usermodel.User" table="myuser" schema="mydb">
<id name="userid">
<generator class="increment" />
</id>
<property name="username" />
<property name="password" />
<property name="dob" />
<property name="gender" />
<set name="addresses" cascade="all">
<key column="userid" />
<one-to-many class="com.alok.mypro.model.usermodel.Address" />
</set>
<joined-subclass name="com.alok.mypro.model.usermodel.Employee" table="employee">
<key column="userid" />
<property name="joindate" />
<property name="role" />
<many-to-one name="branch" class="com.alok.mypro.model.places.Branch"/>
</joined-subclass>
</class>
</hibernate-mapping>
address.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.alok.mypro.model.usermodel.Address" table="address"
schema="myuser">
<id name="email" />
<property name="mobile" />
<property name="street" />
<property name="city" />
<property name="state" />
<property name="country" />
<property name="pin" />
</class>
</hibernate-mapping>
Исключение при сборке
Исключение в потоке "main" org.hibernate.HibernateException: Невозможно создать экземпляр tuplizer по умолчанию [org.hibernate.tuple.entity.PojoEntityTuplizer] at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer (EntityTuplizerFactory.java:108) в org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplityTactityTactityTactityTactityTextEBT. (EntityEntityModeToTuplizerMapping.java:80) в org.hibernate.tuple.entity.EntityMetamodel. (EntityMetamodel.java:322) в org.hibernate.persister.entity.AbstractEntityPersister. (AbstractEntityPpersister.jiberj.jj)..entity.JoinedSubclassEntityPersister. (JoinedSubclassEntityPersister.java:126) в org.hibernate.persister.PersisterFactory.createClassPersister (PersisterFactory.java:87) в org.hibernate.impl.SessionFactoryImpl. (SessionFactorygg.hiber.jpg) .jj.jl..buildSessionFactory (Configuration.java:1872) в Test.main (Test.java:7)
Вызывается: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) на sun.reflect.tuple.entity.EntityTuplizerFactory.constructTuplizer (EntityTuplizerFactory.java:105)
Причина: org.hibernate.PropertyNotFoundException: Не удалось найти получатель для адресов в классе com.alok.mypro.modelEloy.usermodel.org.hibernate.property.BasicPropertyAccessor.createGetter (BasicPropertyAccessor.java:326) в org.hibernate.property.BasicPropertyAccessor.getGetter (BasicPropertyAccessor.java:320) в org.hibernate.mapping.Property.getava44 (orget).hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter (PojoEntityTuplizer.java:297) при org.hibernate.tuple.entity.AbstractEntityTuplizer. (AbstractEntityTuplizer.java:155) при org.hibernate.tuple.entity.PojoEntityTuplizer. (PojoEntityTuplizer.java: 77) ... еще 14