Moin,
ich versuche mich gerade mit dem Buch "Spring&Hibernate" aus dem Hanser-Verlag etwas in Hibernate einzulesen. Um das gelesene anzuwenden, habe ich einfach mal einige eigene Beans erstellt, welche letztendlich dazu dienen sollen, Daten für eine Motorsport-Meisterschaft aufzunehmen um irgendwann mal eine Anwendung zu schreiben, womit man eben solche managen kann.
Der Fehler ist der folgende:
Die anscheinend betroffenen Klassen sind die folgenden:
Letztlich noch meiner hibernate.cfg.xml:
[XML]
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbcostgresql://192.168.56.101/racestandings</property>
<property name="connection.username">postgres</property>
<property name="connection.password">1234</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">true</property>
<mapping class="de.nowak.racestandingapp.data.beans.Ergebnis"/>
<mapping class="de.nowak.racestandingapp.data.beans.Fahrer"/>
<mapping class="de.nowak.racestandingapp.data.beans.Meisterschaft"/>
<mapping class="de.nowak.racestandingapp.data.beans.Rennwochenende"/>
<mapping class="de.nowak.racestandingapp.data.beans.Strecke"/>
<mapping class="de.nowak.racestandingapp.data.beans.Team"/>
</session-factory>
</hibernate-configuration>
[/XML]
Auftreten tut der Fehler in folgender Methode meines Netbeans-Platform Module Installers, um die SessionFactory beim Anwendungsstart zu intialisieren:
So, ne Menge Code. Ich hoffe, mir kann jemand sagen, woran das liegt. Hoffentlich ists nur ein banaler Anfängerfehler. Wenn Ihr sonst noch was braucht, einfach Bescheid sagen.
Grüße,
Patrick
ich versuche mich gerade mit dem Buch "Spring&Hibernate" aus dem Hanser-Verlag etwas in Hibernate einzulesen. Um das gelesene anzuwenden, habe ich einfach mal einige eigene Beans erstellt, welche letztendlich dazu dienen sollen, Daten für eine Motorsport-Meisterschaft aufzunehmen um irgendwann mal eine Anwendung zu schreiben, womit man eben solche managen kann.
Der Fehler ist der folgende:
Code:
org.hibernate.MappingException: Could not determine type for: de.nowak.racestandingapp.data.beans.Ergebnis, at table: weekends, for columns: [org.hibernate.mapping.Column(weekend_quali)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:306)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:290)
at org.hibernate.mapping.Property.isValid(Property.java:217)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:463)
at org.hibernate.mapping.RootClass.validate(RootClass.java:235)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1332)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1835)
at de.nowak.racestandingapp.data.io.Installer.restored(Installer.java:14)
at org.netbeans.core.startup.NbInstaller.loadCode(NbInstaller.java:426)
at org.netbeans.core.startup.NbInstaller.load(NbInstaller.java:366)
at org.netbeans.ModuleManager.enable(ModuleManager.java:944)
at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:318)
at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:254)
at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:286)
at org.netbeans.core.startup.Main.getModuleSystem(Main.java:172)
at org.netbeans.core.startup.Main.start(Main.java:302)
at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:114)
[catch] at java.lang.Thread.run(Thread.java:619)
Die anscheinend betroffenen Klassen sind die folgenden:
Java:
@Entity
@Table(name = "results")
public class Ergebnis {
private Integer id;
private List<Fahrer> ergebnis;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@OneToMany
@JoinColumn(name = "result_fk")
@Column(name = "result")
public List<Fahrer> getErgebnis() {
return ergebnis;
}
public void setErgebnis(List<Fahrer> ergebnis) {
this.ergebnis = ergebnis;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || Hibernate.getClass(this) != Hibernate.getClass(obj)) {
return false;
}
Ergebnis erg = (Ergebnis) obj;
if (!this.getErgebnis().equals(erg)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 3;
hash = 89 * hash + (this.id != null ? this.id.hashCode() : 0);
hash = 89 * hash + (this.ergebnis != null ? this.ergebnis.hashCode() : 0);
return hash;
}
}
Java:
@Entity
@Table(name = "weekends")
public class Rennwochenende {
private Integer id;
private Strecke strecke;
private Ergebnis quali;
private Ergebnis rennen;
private Date termin;
public Rennwochenende() {
System.out.println("Konstruktor Rennwochenende");
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "weekend_quali")
public Ergebnis getQuali() {
return quali;
}
public void setQuali(Ergebnis quali) {
this.quali = quali;
}
@Column(name = "weekend_race")
public Ergebnis getRennen() {
return rennen;
}
public void setRennen(Ergebnis rennen) {
this.rennen = rennen;
}
@Column(name = "weekend_date")
public Date getTermin() {
return termin;
}
public void setTermin(Date termin) {
this.termin = termin;
}
@Column(name = "weekend_track")
public Strecke getStrecke() {
return strecke;
}
public void setStrecke(Strecke strecke) {
this.strecke = strecke;
}
}
Letztlich noch meiner hibernate.cfg.xml:
[XML]
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbcostgresql://192.168.56.101/racestandings</property>
<property name="connection.username">postgres</property>
<property name="connection.password">1234</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">true</property>
<mapping class="de.nowak.racestandingapp.data.beans.Ergebnis"/>
<mapping class="de.nowak.racestandingapp.data.beans.Fahrer"/>
<mapping class="de.nowak.racestandingapp.data.beans.Meisterschaft"/>
<mapping class="de.nowak.racestandingapp.data.beans.Rennwochenende"/>
<mapping class="de.nowak.racestandingapp.data.beans.Strecke"/>
<mapping class="de.nowak.racestandingapp.data.beans.Team"/>
</session-factory>
</hibernate-configuration>
[/XML]
Auftreten tut der Fehler in folgender Methode meines Netbeans-Platform Module Installers, um die SessionFactory beim Anwendungsstart zu intialisieren:
Java:
import org.hibernate.cfg.Configuration;
import org.openide.modules.ModuleInstall;
public class Installer extends ModuleInstall {
@Override
public void restored() {
DB.sessionFactory =
new Configuration().configure().buildSessionFactory();
}
}
So, ne Menge Code. Ich hoffe, mir kann jemand sagen, woran das liegt. Hoffentlich ists nur ein banaler Anfängerfehler. Wenn Ihr sonst noch was braucht, einfach Bescheid sagen.
Grüße,
Patrick