@Id または @Column 属性のないサブクラス Entity があります。
しかし、私のサブクラスエンティティは次のように @IdClass を持っています
@Entity
@Table(name = "Employee")
@IdClass(EmployeeEntityPK.class)
public class EmployeeEntity extends AbstractEntity {
@Override
public void setName(String name) {
super.setName(name);
}
@Override
public void setLocation(String location) {
super.setLocation(location);
}
@Override
public void setEmpId(Integer empId) {
super.setEmpId(empId);
}
}
プロジェクトをデプロイしようとすると。休止状態から例外が発生しています
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547) [rt.jar:1.6.0_17]
at java.util.ArrayList.get(ArrayList.java:322) [rt.jar:1.6.0_17]
at org.hibernate.cfg.AnnotationBinder.getUniqueIdPropertyFromBaseClass(AnnotationBinder.java:2576)
at org.hibernate.cfg.AnnotationBinder.isIdClassPkOfTheAssociatedEntity(AnnotationBinder.java:925)
at org.hibernate.cfg.AnnotationBinder.mapAsIdClass(AnnotationBinder.java:824)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:671)
完全な例外はhttp://pastebin.com/SnhQ1ZVQにあります
Hibernate は、存在しないエンティティから @Id クラスを見つけようとしています。
この問題を解決するにはどうすればよいですか。
私のスーパークラスは次のとおりです
@MappedSuperclass
public class AbstractEntity implements Serializable {
@Id
@Column(name = "empId")
private Integer empId;
@Column(name = "Name")
private String name;
@Column(name = "LOCATION")
private String location;
public Integer getEmpId() {
return empId;
}
//along with other getter setters
}