Hibernate - gelten Sperren zu übergeordneten Tabellen in polymorphen Abfragen
-
21-09-2019 - |
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.
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.