Hi, ich bin relativ neu im Bereich Hibernate, aber schon etwas erfahrender in Java (auch wenn ich in letzter Zeit eher mit PHP "arbeitete"). Mein Problem ist, dass ich meherer Klasse habe, welche von der Klasse Person erben. Diese habe habe alle in mit xml gemappt. Das Problem ist nur: Immer wenn ich mit der HQl- Query Select d from Person d WHERE d.name = :eingabe
eine bestimmte Person suche, erzeugt er auch Queries für die anderen Table z.B. getVerlag.
Woran liegt es? Fehlt in der xml ein entsprechender Tag? Oder ist dies normal ?
Ich habe diese Klasse Person gegeben.
dazu habe ich folgende xml-Datei erstellt
Nun habe ich mehrere Klassen, welche von Person erben. z.B.
die dazugehörige xml-Datei.
eine bestimmte Person suche, erzeugt er auch Queries für die anderen Table z.B. getVerlag.
Woran liegt es? Fehlt in der xml ein entsprechender Tag? Oder ist dies normal ?
Ich habe diese Klasse Person gegeben.
Java:
public class Person<P extends Produkt> {
protected P product;
protected String name;
protected String role;
//getter and setter
}
dazu habe ich folgende xml-Datei erstellt
Code:
<hibernate-mapping package="Classes">
<class name="Person" table ="getperson">
<id column="Produktnummer" type="string" />
<property name="name" column="Name" />
<property name="role" column="Rolle"/>
<many-to-one name="product" class="Produkt" column="Produktnummer" insert="false" update="false"/>
</class>
</hibernate-mapping>
Nun habe ich mehrere Klassen, welche von Person erben. z.B.
Java:
public class Book extends Produkt {
private String isbn = "";
private Integer pages = null;
private String pubDate = null;
private Set<Publisher> publishers = new LinkedHashSet<Publisher>();
private Set<Author> authors = new LinkedHashSet<Author>();//getter and setter
//the inner class Publisher
public static class Publisher extends Person<Book> {
public Publisher() { }
public Publisher(String name) { super(name); }
}
die dazugehörige xml-Datei.
Code:
<class name="Book" table="getBuch">
<id name ="number" column="Produktnummer">
<generator class="native"/>
</id>
<property name="title" column="titel"/>
<property name="picUrl" column="Bild"/>
<property name="avgRating" column="Rating"/>
<property name="salesRank" column="Verkaufsrang"/>
<property name="pubDate" column="Erscheinungsdatum"/>
<property name="isbn" column="ISBN"/>
<property name="pages" column="Seitenanzahl"/>
<set name="publishers" cascade="all">
<key column="Produktnummer" />
<one-to-many class="Book$Publisher" />
</set>
</class>
<class name="Book$Publisher" table="getverlag">
<id column="Produktnummer" type="string" />
<property name="name" column="name" />
<property name="role" column="Rolle"/>
</class>