Hi,
ich bin Hibernate-Neuling und versuche gerade, einfach Zeilen aus einer Tabelle Journal zu lesen. Diese enthält einen Verweis auf einen Publisher-Eintrag (also eine many-to-one zu publisher).
Es wird eine NullPointerException geworfen. Wenn ich jedoch die many-to-one aus dem mapping-file entferne, funktioniert es (natürlich ohne die Verlinkung zum Publisher-Eintrag), weshalb ich vermute, dass ich einen Fehler beim Mapping oder in der dazugehörenden Persistent Class mache.
Habt Ihr ne Idee?
Hier in etwa der Code:
Klasse Journal
Code:
public class Journal{
public Journal(){}
private long id;
private String name;
/**
* The Publisher of the journal
*/
private Publisher publisher = new Publisher();
// setters and getters
...
}
Klasse PublisherCode:
public class Publisher{
public Publisher(){}
private long id;
private String name;
priavte String address;
// setters and getters
...
}
Journal mappingCode:
<class name="Journal"
table="journal"
schema="pblc">
<id name="id" column="id" type="long">
<generator class="sequence">
<param name="sequence">pblc.journal_id_seq</param>
</generator>
</id>
<property name="name" .../>
<many-to-one
name="publisher"
column="publisher_id"/>
</class>
PostgreSQL-TabellenCode:
CREATE TABLE pblc.publisher
(
id SERIAL PRIMARY KEY,
name VARCHAR(50),
address VARCHAR(50)
);
-- table for a scientific journal
CREATE TABLE pblc.journal
(
id SERIAL PRIMARY KEY,
name varchar(100),
publisher_id INTEGER REFERENCES pblc.publisher (id) ON DELETE RESTRICT,
);
Und zu guter letzt die ersten Zeilen der
Fehlermeldung:
Quote:
Exception in thread "main" java.lang.NullPointerException
at java.lang.Object.getClass() (/usr/lib/libgcj.so.6.0.0)
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(java.io.Serializable, org.hibernate.engine.SessionImplementor) (Unknown Source)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(java.io.Serializable, org.hibernate.engine.SessionImplementor) (Unknown Source)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(org.hibernate.event.LoadEvent, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.EntityKey, org.hibernate.event.LoadEven
[/b]