私は2つのオブジェクトを持っています:
public class ParentObject {
// some basic bean info
}
public class ChildObject extends ParentObject {
// more bean info
}
これらの各テーブルは、データベース内の別のテーブルに対応しています。Hibernate を使用して ChildObject をクエリしています。これにより、親オブジェクトの値が入力されます。
マッピング ファイルを次のように定義しました。
<hibernate-mapping>
<class name="ParentObject"
table="PARENT_OBJECT">
<id name="id"
column="parent"id">
<generator class="assigned"/>
</id>
<property name="beaninfo"/>
<!-- more properties -->
<joined-subclass name="ChildObject" table="CHILD_OBJECT">
<key column="CHILD_ID"/>
<!--properties again-->
</joined-subclass>
</class>
</hibernate-mapping>
休止状態を使用して、2 つのテーブルを問題なくクエリできます。
私が使う
session.createQuery("from ChildObject as child ");
これはすべて基本的な休止状態のものです。ただし、私が問題を抱えている部分は、クエリ内のすべてのテーブルにロックを適用する必要があることです。
query.setLockType("child", LockMode.?) を使用して、子オブジェクトのロック タイプを設定できます。ただし、親テーブルにロックを設定する方法が見つからないようです。
私は Hibernate を初めて使用し、まだいくつかの精神的な障害に取り組んでいます。問題は、親テーブルをロックするにはどうすればよいかということです。
私が設定したポリモーフィック構造を元に戻さずにこれを行わなければならないことを回避する方法があるかどうか疑問に思っていました.