私は1対1の関係を持っていますが、スキーマの生成時にhibernatetoolがエラーを発します。JPA Hibernate 1対1の関係
@Entity
public class Person {
@Id
public int id;
@OneToOne
public OtherInfo otherInfo;
rest of attributes ...
}
人OtherInfoとの1対1の関係を有する:ここでは、問題を示し例です
@Entity
public class OtherInfo {
@Id
@OneToOne(mappedBy="otherInfo")
public Person person;
rest of attributes ...
}
人OtherInfoの側を所有しています。 OtherInfoは所有サイドであるため、personはmappedBy
を使用してPersonに属性名 "otherInfo"を指定します。
データベーススキーマを生成するhibernatetoolを使用したとき、私は次のエラーを取得する:
org.hibernate.MappingException: Could not determine type for: Person, at table: OtherInfo, for columns: [org.hibernate.mapping.Column(person)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:175)
at org.hibernate.cfg.Configuration.iterateGenerators(Configuration.java:743)
at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:854)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:128)
...
任意のアイデアなぜですか?私は何か間違っているのですか、これはHibernateのバグですか?
グレート答えは、ちょうどあなたが(私は物事が正しく動作して取得する必要がありました)あなたのPersonクラスでも同様に以下の注釈を追加する必要があるかもしれないことを追加したい: '@Cascade({CascadeType.ALL、CascadeType。 DELETE_ORPHAN}) ' –
ありがとう、それは私の問題を助けました..とにかくJPA注釈だけを使用し、休止状態を避けることを知っていますか? – Elton
@Elton - もしJPA 2.0でなければならない方法があれば、私はこれを見ていませんでした。 – topchef