0

1対1のマッピングで、次のコード行を記述しました。

@GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name="property", value= "post"))
@Id
@GeneratedValue(generator = "generator")
public int getContent_id() {
    return content_id;
}

@Parameter(name = "property"、value = "post")の意味は何ですか。その行を書かないと、エラーが発生します

initメソッドの呼び出しに失敗しました。ネストされた例外はorg.hibernate.MappingExceptionです:IDジェネレーターをインスタンス化できませんでした[entity-name = in.codejava.personal.model.Content]

編集

value="post"をvalue="post123"などの他の値に変更すると機能します。しかし、それを完全に削除すると機能しません。部分コードhttp://pastebin.com/CjEpqtXV

4

1 に答える 1

2

これにより、IDを抽出する必要のあるプロパティ(この場合は「post」)をジェネレーターに通知できます。エンティティは、複数のOnetoOneアソシエーションを持つことができます。そのうちのどれにエンティティのIDが含まれているかを伝える必要があります。

このジェネレーターは、IDを含むOneToOneアソシエーションの標準JPAアノテーションに置き換えることができることに注意してください:@MapsId。Hibernateのドキュメントでは、外部ジェネレーターではなく、その使用法を推奨しています。

于 2012-07-27T17:25:22.417 に答える