# Eclipse JPA Project



## Soahc (20. Okt 2010)

Hallo,

ich möchte mit Hilfe eines JPA-Projekts (Eclipse Helios) die Persistence-Schicht meiner Webanwendung realisieren, wobei die Datenbank-Tabellen von JPA bzw. Hybernate erzeugt werden sollen. Die Datenbank-Verbindung habe ich richtig eingetragen und auch die persistence.xml sollte so stimmen. (Ich arbeite mit dem JBoss 6.0.0 und JBoss Tools)


```
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="pestcontrol_jpa" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>phillsoft_MySQL</jta-data-source>
		<properties>
		<property name="hibernate.hbm2dll.auto" value="create-drop"/>
		</properties>
	</persistence-unit>
</persistence>
```

Auch eine erste Entity habe ich fertig:


```
package lg;

import java.io.Serializable;
import java.lang.String;
import javax.persistence.*;

@Entity
public class LgVersion implements Serializable {
	   
	@Id
	private long ID;
	private String key;
	private String description;
	private static final long serialVersionUID = 1L;

	public LgVersion() {
		super();
	}   
	public long getID() {
		return this.ID;
	}

	public void setID(long ID) {
		this.ID = ID;
	}   
	public String getKey() {
		return this.key;
	}

	public void setKey(String key) {
		this.key = key;
	}   
	public String getDescription() {
		return this.description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
}
```

Nun bekomme ich aber den Fehler 'Table "LgVersion" cannot be resolved', was mir sicher sagen soll, dass die Tabelle nicht in der Datenbank gefunden werden kann. Aber die Tabelle soll doch erst erzeugt werden... was mache ich falsch?

gruß, Phill


----------



## Gelöschtes Mitglied 5909 (20. Okt 2010)

du musst in der persistence .xml noch die entity klassen angeben.

[xml]
<persistence xmlns="http://java.sun.com/xml/ns/persistence"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
	<persistence-unit name="org.java.forum.sample.entity">
		<class>org.java.forum.sample.entity.PersonEntity</class>
		<properties>
			<property name="eclipselink.logging.level" value="OFF"/>
			<property name="eclipselink.weaving" value="false"/>

			<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
			<property name="eclipselink.ddl-generation.output-mode" value="database" />

		</properties>
	</persistence-unit>
</persistence>
[/xml]

(aus nem anderen beispiel)


----------



## Soahc (20. Okt 2010)

beim erstellen des JPA-Projectes gab es die Option "Persistent class management", wo ich 'Discover annotated classes automatically" ausgewählt habe. Da die Alternative dazu "Annotated classes musst be listed in persistence.xml" war, bin ich davon ausgegangen, dass ich sie nicht mehr in die persistence.xml eintragen muss... mh...


----------



## LadyMilka (21. Okt 2010)

Das Problem ist, Hibernate erzeugt keine Tabellen. Diese müssen entweder in der DB vorhanden sein oder beim Starten der Anwendung(per Script) erzeugt werden.

Zumindest ist das so, nach meinem Wissensstand.


----------



## MySelV (21. Okt 2010)

Hi,

Hibernate erzeugt sehr wohl Tabellen:
[XML]<property name="hibernate.hbm2dll.auto" value="create-drop"/>
[/XML]

Man darf nur keine Tippfehler einbauen. Mach mal ein hbm2ddl.auto draus.


----------



## ThreadPool (21. Okt 2010)

LadyMilka hat gesagt.:


> Zumindest ist das so, nach meinem Wissensstand.



Dann ist dein Wissenstand falsch, natürlich erzeugt Hibernate die Tabellen und zwar beim ersten Zugriff per JPA. Und einen Namen darf man auch noch mit @Table(name = "blabla") vergeben.


----------



## LadyMilka (21. Okt 2010)

Das war für mich auch noch nicht interesse, ich benutze Hibernate in Verbindung mit einer bestehenden Datenbank.


----------



## MySelV (21. Okt 2010)

MySelV hat gesagt.:


> Hi,
> 
> Hibernate erzeugt sehr wohl Tabellen:
> [XML]<property name="hibernate.hbm2dll.auto" value="create-drop"/>
> ...



Umgesetzt? Besteht das Problem weiterhin? Wenn ja poste mal bitte den Errorlog.

Grüße


----------



## Soahc (21. Okt 2010)

Danke es funktioniert jetzt. Alternativ bietet aber auch Eclipse an, die Tabellen zu erzeugen: 
Help - Eclipse SDK


----------

