Hibernate - OneToMany - mappedBy reference an unknown target entity property

H

hbrs.david

Gast
Hi zusammen,

ich versuche mich an einer einfachen Hibernate-Programmierung. Leider bekomme ich eine Exception, die ich nicht direkt zuordnen kann.

Also hier die Fehlermeldung:
Exception in thread "main" org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: de.hbrs.datenanalyse.domain.Zeile.Zeile in de.hbrs.datenanalyse.domain.Datensatz.zeilen
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:685)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:645)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:65)
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1689)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1396)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1829)
at de.hbrs.datenanalyse.HibernateFacade.<init>(HibernateFacade.java:17)
at de.hbrs.datenanalyse.CreateTest.main(CreateTest.java:22)

Domain Klassen

Java:
 package de.hbrs.datenanalyse.domain;

import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.OneToMany;
import javax.persistence.Column;

@Entity
@Table(name = "datensaetze")
public class Datensatz {
	
    @Id
    @GeneratedValue
    @Column (name = "datensatz_id")
    private Long id;
    
    @Column (name = "datensatzname")
	private String datensatzname;
    
    @Column (name = "jahr")
    private Integer jahr;
   
    
    public Datensatz(){    	
    }
    
    public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getDatensatzname() {
		return datensatzname;
	}

	public void setDatensatzname(String datensatzname) {
		this.datensatzname = datensatzname;
	}

	public Integer getJahr() {
		return jahr;
	}

	public void setJahr(Integer jahr) {
		this.jahr = jahr;
	}
	
	@OneToMany(mappedBy="Zeile")
	private Set<Zeile> zeilen;
	public Set<Zeile> getZeilen() {
		return zeilen;
	}

	public void setZeilen(Set<Zeile> zeilen) {
		this.zeilen = zeilen;
	}
	    
}

Java:
 package de.hbrs.datenanalyse.domain;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.OneToMany;

@Entity
@Table(name = "kreise")
public class Kreis {
	
    @Id
    @Column (name = "kreisschluessel")
    private Long kreisschluessel;
    
    @Column (name = "kreisname")
    private String kreisname;
    
    @Column (name = "einwohner")
    private Integer einwohner;
    
    @Column (name = "beschreibung")
    private String beschreibung;
    
    public Kreis(){
    }

	public Long getKreisschluessel() {
		return kreisschluessel;
	}

	public void setKreisschluessel(Long kreisschluessel) {
		this.kreisschluessel = kreisschluessel;
	}

	public String getKreisname() {
		return kreisname;
	}

	public void setKreisname(String kreisname) {
		this.kreisname = kreisname;
	}

	public Integer getEinwohner() {
		return einwohner;
	}

	public void setEinwohner(Integer einwohner) {
		this.einwohner = einwohner;
	}

	public String getBeschreibung() {
		return beschreibung;
	}

	public void setBeschreibung(String beschreibung) {
		this.beschreibung = beschreibung;
	}
	
	@OneToMany(mappedBy="Zeile")
	private Set<Zeile> zeilen;
	public Set<Zeile> getZeilen() {
		return zeilen;
	}

	public void setZeilen(Set<Zeile> zeilen) {
		this.zeilen = zeilen;
	}
	
    
}

Java:
package de.hbrs.datenanalyse.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "zeilen")
public class Zeile {
	
	@Id
    @GeneratedValue
    @Column (name = "zeilen_id")
    private Long id;
	
	@Column (name = "wert")
	private Double wert;
	
	public Zeile(){
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Double getWert() {
		return wert;
	}

	public void setWert(Double wert) {
		this.wert = wert;
	}
	
	@ManyToOne
	@JoinColumn(name="datensatz_id")
	private Datensatz datensatz;
	public Datensatz getDatensatz() {
		return datensatz;
	}

	public void setDatensatz(Datensatz datensatz) {
		this.datensatz = datensatz;
	}
	
	
	@ManyToOne
	@JoinColumn(name="kreisschluessel")
	private Kreis kreis;
	public Kreis getKreis() {
		return kreis;
	}

	public void setKreis(Kreis kreis) {
		this.kreis = kreis;
	}

}

Hilfsklassen & Test

Java:
 package de.hbrs.datenanalyse;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.classic.Session;

import de.hbrs.datenanalyse.domain.Datensatz;
import de.hbrs.datenanalyse.domain.Kreis;
import de.hbrs.datenanalyse.domain.Zeile;

import de.hbrs.datenanalyse.HibernateFacade;


public class CreateTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		
		HibernateFacade facade = new HibernateFacade();

		Session session = facade.getSession();
		session.beginTransaction();
		
		Kreis kreis = new Kreis();
		kreis.setKreisschluessel((long) 123);
		kreis.setKreisname("Rhein-Sieg-Kreis");
		kreis.setEinwohner(1201288);
		kreis.setBeschreibung("Rhein-Sieg-Kreis");
		
		Zeile zeile1 = new Zeile();
		zeile1.setKreis(kreis);
		zeile1.setWert(45.3);
		
		Zeile zeile2 = new Zeile();
		zeile2.setKreis(kreis);
		zeile2.setWert(54.3);
	
		Set<Zeile> zeile = new HashSet<Zeile>();
		zeile.add(zeile1);
		zeile.add(zeile2);
		
		Datensatz datensatz = new Datensatz();
		datensatz.setDatensatzname("Schweinedichte");
		datensatz.setJahr(2009);
		datensatz.setZeilen(zeile);

		session.getTransaction().commit();
		
		
		

	}

}

Java:
package de.hbrs.datenanalyse;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

public class HibernateFacade {

    private SessionFactory sessionFactory;

    public HibernateFacade() throws Exception {

	// A SessionFactory is set up once for an application
	Configuration config = new Configuration().configure();

	// configures settings from hibernate.cfg.xml
	sessionFactory = config.buildSessionFactory();

	System.out.println("Hibernate successfully initiated");
    }

    public Session getSession() {
	return sessionFactory.getCurrentSession();
    }

    public Session createNewSession() {
	return sessionFactory.openSession();
    }
}

Konfigurations-XML
Java:
<?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">
			com.mysql.jdbc.Driver
		</property>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>

		<property name="connection.url">jdbc:mysql://localhost/datenanalyse</property>
		<property name="connection.username">root</property>
		<property name="connection.password"></property>

		<!-- this will show us all sql statements -->
		<property name="hibernate.show_sql">true</property>

		<!-- more options -->
		<property name="current_session_context_class">thread</property>
		<property name="cache.provider_class">
			org.hibernate.cache.NoCacheProvider
		</property>

		<property name="hibernate.max_fetch_depth">3</property>
		<property name="max_fetch_depth">3</property>

		<!-- Drop and re-create the database schema on startup -->
		<!-- <property name="hbm2ddl.auto">update/create</property> -->
		<property name="hbm2ddl.auto">update</property>
		
		<mapping class="de.hbrs.datenanalyse.domain.Datensatz" />
		<mapping class="de.hbrs.datenanalyse.domain.Zeile" />
		<mapping class="de.hbrs.datenanalyse.domain.Kreis" />

	</session-factory>

</hibernate-configuration>

Was läuft noch falsch? Ich weiss leider nicht mehr weiter.

Grüße

David
 

Antoras

Top Contributor
Java:
@OneToMany(mappedBy="Zeile")
Code:
mappedBy
erwartet den Namen des Feldes über das die Beziehung aufgebaut werden soll. Das wären bei dir wohl
Code:
kreis
und
Code:
datensatz
.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
O Hibernate Fehlermeldung bei start des Servers Allgemeines EE 2
E Frage zu Wildfly und Hibernate OGM Allgemeines EE 0
S Frage zu Jersey + Hibernate Allgemeines EE 1
D GWT mit Hibernate und Sql Datenbank Allgemeines EE 2
B Wicket, Hibernate, H2 memDB Anfänger Frage Allgemeines EE 2
A Hibernate endlich zu Laufen bekommen... Allgemeines EE 11
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
LadyMilka Ablaufdiagramm mit/ohne Hibernate Allgemeines EE 2
P Mit JAXB erzeugte Klassen persistieren (Hibernate) Allgemeines EE 10
K Anfänger: Hibernate + Web Allgemeines EE 2
T Hibernate 3 + EJB 3 + JBoss 5 Allgemeines EE 6
G Persistenz mit Hibernate oder J2EE? Allgemeines EE 11
C Hibernate - Expression.or Allgemeines EE 4
D Erst Spring oder erst Hibernate lernen? Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
Y myFaces und Hibernate Session Handling Allgemeines EE 7
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
byte Remote Lazy Loading mit Spring und Hibernate Allgemeines EE 5
G JSF, Hibernate, Spring --> Struktur Allgemeines EE 2
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
G JSF | Hibernate | MySQL Allgemeines EE 17
G Hibernate: org.hibernate.TransactionException Allgemeines EE 4
F org.hibernate.LazyInitializationException: failed to lazily Allgemeines EE 8
J nur bestimmte Mapping-Dateien berücksichtigen (Hibernate) Allgemeines EE 14
S Hibernate EJB3 Allgemeines EE 2
E JBoss Hibernate Datenbank-Timeout Allgemeines EE 3
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
2 hibernate - createQuery() Allgemeines EE 9
T Hibernate die richtige Wahl? Allgemeines EE 2
M JSF mit Hibernate Allgemeines EE 14
W Hibernate *.Jar's im Klassenpfad Allgemeines EE 10
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
C EntityManager wirft NullpointerException: JBoss-Hibernate Allgemeines EE 4
E JSF, Hibernate & MySQL: Keine Datenbankaktualisierung Allgemeines EE 5
M mit Hibernate 1:n in view richtige implementieren Allgemeines EE 3
M Hibernate Criteria frage Allgemeines EE 2
A Speicherproblem bei Webanwendung mit Hibernate und Stuts Allgemeines EE 6
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
E JOINS und Hibernate? Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
S Java Enum in MySQL und Hibernate Allgemeines EE 3
R Hibernate: many-to-many funktioniert noch nicht ganz Allgemeines EE 2
D Hibernate hql suche Date Allgemeines EE 9
B JSF + Hibernate How2 Allgemeines EE 2
G [JSF+Hibernate]: DB-Constraints in Validierungsphase? Allgemeines EE 4
P struts Hibernate MySQL Select Statement Allgemeines EE 24
G JTA ja/nein & wie (JBoss & Hibernate & Transakti Allgemeines EE 3
T Hibernate & Logging in Log4J Allgemeines EE 4
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
G Persistenz-Entscheidung (Entity Beans, Hibernate, JDBC) Allgemeines EE 12
S Hibernate 2.x mit Eclipse 2.1 Allgemeines EE 16
D [Glassfish EJB] OneToMany geht nicht Allgemeines EE 7
S JPA Entitys anlegen OneToMany Relation abbilden Allgemeines EE 10
F mappedBy reference an unknown target entity property Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben