0

重複の可能性:
Hibernate: 同じ識別子値を持つ別のオブジェクトが既にセッションに関連付けられていました

私はHibernateが初めてで、APIからこれを理解できませんでした。session.get の API は次のように述べています。

オブジェクト org.hibernate.Session.get(Class clazz, Serializable id)

指定された識別子を持つ指定されたエンティティ クラスの永続インスタンスを返します。そのような永続インスタンスがない場合は null を返します。(インスタンスがすでにセッションに関連付けられている場合は、そのインスタンスを返します。このメソッドは、初期化されていないインスタンスを返すことはありません。)

ここでの識別子とは何ですか。ほとんどの例では、1L として指定されています (おそらく、テーブルの主キーが長いためでしょうか?) 私はその本質を理解していません。

4

1 に答える 1

3

ここでの識別子とは

エンティティの識別子は、@Idまたはで注釈が付けられたプロパティ@EmbeddedIdです。

クラスでlongサロゲート識別子を使用する場合、次のようにセッションを使用します。

session.get(MyClass.class, 1);

@Embeddableクラスが埋め込み ID を使用する場合、そのクラスのインスタンスを get メソッドに渡します。

session.get(MyClass.class, new MyClassIdentifier("String", 1));
于 2012-08-09T13:27:58.323 に答える