Używam adnotacji Hibernate, aby utrzymać swoje klasy. Obecnie używam następującej strategii do mapowania klasHibernate polimorficzna instrukcja SELECT HQL
Mam klasę abstrakcyjną, która jest klasą nadrzędną i mam dwie podklasy, które po niej dziedziczą Matka, ojciec.
I odwzorowane to tak:
@MappedSuperclass
public abstract class Parent {
private int age;
private String name;
...
}
a dwie inne klasy są zadeklarowane tak:
@Entity
public Class Father extends Parent {
private boolean haveMustash;
...
}
Więc w zasadzie taki scenariusz jest "Tablica w klasie".
Teraz chcę utworzyć oświadczenie Hibernuj HQL, które zaktualizuje wiek rodzica, niezależnie od jego rodzaju (matka, ojciec). rodzic zostanie sprawdzony przy użyciu kolumny nazwy, która jest unikalna w obu tabelach. ale nie wiem tylko patrząc na imię, jeśli jest to Matka lub Ojciec. Jak utworzyć instrukcję HQL, która będzie wyglądała w obu tabelach i zwróci odpowiednią jednostkę do aktualizacji?
myślałem o czymś takim: (ale nie mam pojęcia, czy jest w ogóle możliwe)
Parent parent = hibernateTemplate.find("from Mother,Father where name="
+ name);
To nie działa, otrzymuję Parent nie jest odwzorowany (wyjątek Hibernacja) – stdcall
Cóż, następnie zamapuj go. –
Cała idea polega na tym, że nie można jej zmapować, jest to klasa abstrakcyjna, Ojciec i Matka pobierają z niej swoje podstawowe mapowanie. – stdcall