Frage

Ich habe zwei Objekte:

public class ParentObject {
 // some basic bean info
}

public class ChildObject extends ParentObject {
 // more bean info
}

Jede dieser Tabellen entsprechen eine differnet Tabelle in einer Datenbank. Ich bin mit dem Hibernate Childobject abzufragen, was wiederum die übergeordneten Objekte Werte füllen.

Ich habe meine Mapping-Datei definiert als so:

<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>

Ich kann Hibernate verwenden, um die beiden Tabellen ohne Ausgabe abzufragen.

ich

session.createQuery("from ChildObject as child ");

Das ist alles grundlegende Hibernate Sachen. Doch mit dem Teil, das ich Probleme habe, ist, dass ich brauche Sperren aller Tabellen in der Abfrage angewandt werden.

kann ich den Lock-Typ für das Kind-Objekt festgelegt durch die query.setLockType mit ( „Kind“, LOCKMODE.?). Allerdings kann ich nicht einen Weg zu finden, scheint eine Sperre auf der übergeordneten Tabelle zu setzen.

Ich bin neu in dem Ruhezustand, und arbeite immer noch um ein paar mentalen Hürden. Die Frage ist: Wie kann ich auf der übergeordneten Tabelle eine Sperre setzen?

Ich frage mich, ob es einen Weg, um sich zu haben, dies zu tun, ohne die polymorphe Struktur rückgängig gemacht, dass ich eingestellt.

War es hilfreich?

Lösung

Warum müssen Sie beide Tabellen sperren? Ich frage, weil je nachdem, was Sie versuchen, es zu tun, können alternative Lösungen zu erreichen, was Sie wollen.

So wie die Dinge sind, in der Regel Hibernate

scroll top