によって@OrderBy使用して休止状態にマッピングされました。 ガンマには属性として "attributeName"があります。にSortedSetは、私は、エンティティアルファを持っており、それらの内側に継承され、フィールド
私がBetaの属性を使用する場合、正常に動作します。しかし、継承された属性を使用すると、hibernateは実際には存在しないBetaクラスのattributeName属性を探します。
は例外に従ってください:
could not initialize a collection: [...sortedSet]
...
Caused by: org.hibernate.exception.SQLGrammarException: could not initialize a collection: [...sortedSet]
...
Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "GAMA"."GAMA_NM_ATT": invalid identifier
EDIT1: アルファ、ベータおよびガマは私のデータベース内のテーブルです。
@MappedSuperClassはGamaではテーブルなので使用できません。
簡単に実体の宣言:
@Entity
@Table(name = "GAMA")
@SequenceGenerator(name = "SQ_GAM_CD_GAMA", sequenceName = "SQ_GAM_CD_GAMA")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Gama implements IEntity<Long> {
@Column(name = "GAM_NM_ATT", nullable = false, length = 260)
public String getAttributeName() {
return this.attributeName;
}
...
}
@Entity
@Table(name = "BETA")
public class Beta extends Gama implements Comparable<Beta> {
@ManyToOne
@JoinColumn(name = "BET_CD_BETA", nullable = false)
public Alpha getAlpha() {
return alpha;
}
...
}
@Entity
@Table(name = "ALPHA")
@SequenceGenerator(name = "SQ_ALP_CD_ALPHA", sequenceName = "SQ_ALP_CD_ALPHA")
public class Alpha implements IEntity<Long> {
@OneToMany(mappedBy = "alpha")
@Sort(type = SortType.NATURAL)
@Orderby("attributeName ASC") //<------------ **PROBLEM**
private SortedSet<Beta> betaSortedSet = new TreeSet<Beta>();
[mcve]がなければ何が間違っているのかわかりにくいです。さらに、問題の性質についてのあなたの解釈は、提示された例外と一直線に並んでいないようです。 –
['@ MappedSuperclass'](http://docs.oracle.com/javaee/5/api/javax/persistence/MappedSuperclass.html)を使用していますか? –
ガンマで@MappedSuperclassを使用していますか? –