@OneToMany
注釈を使用して、あるクラスの複合主キーを別のクラスから参照する際に問題があります。
複合主キーを持つ私のクラスは次のとおりです。
@Entity
@Table(name = "name_entry")
public class NameEntry {,
@EmbeddedId
private NameEntryPK id;
//getters, setters
}
複合 Id クラスは次のようになります。
@Embeddable
public class NameEntryPK implements Serializable {
@Column(name = "entry")
protected String entry;
@Column(name = "name")
protected String name;
//getters, setters
}
これは私には明らかであり、完璧に機能しています。問題は別の場所で発生します。主キーへの外部キーを持つ別のクラスが必要NameEntry
です。私はそのようなことを書いています:
@Entity
@Table(name = "content_entry")
public class ContentEntry {
//id, other columns
@OneToOne
@JoinColumns ({
@JoinColumn(name = "entry_content", referencedColumnName = "entry", insertable = false, updatable = false),
@JoinColumn(name="title_name", referencedColumnName = "name", insertable = false, updatable = false)
})
protected NameEntry nameEntry;
//getters, setters
}
これによると、私の例外は次のとおりです。
Invocation of init method failed; nested exception is org.hibernate.MappingException:
Unable to find column with logical name: `entry` in
org.hibernate.mapping.Table(name_entry) and its related supertables and
secondary tables
これによると: https://hibernate.onjira.com/browse/HHH-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel列名をアクセントで囲みました。しかし、それは機能していません。