Hallo zusammen,
vorweg: Leider bin ich mir nicht sicher, ob das Problem bei Hibernate oder Netbeans liegt. Entschuldigt gegebenenfalls die falsche Forenwahl.
Ich habe begonnen unter Netbeans 7.0 eine Swing-Applikation mit HSQLB und Hibernate zu basteln. Dies ist meine erste JPA-Anwendung.
Beim Versuch einen EntityManager anzulegen, bekomme ich folgende Exception:
Meine Service-Klasse sieht so aus:
Mein DTO/DAO/Whatever pflege ich mit Annotations:
Ich habe in einem Ordner META-INF auch entsprechende persistence.xml und hibernate.cfg.xml platziert:
[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="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:file:testdb</property>
<property name="hibernate.show_sql">true</property>
<mapping class="jsuba.model.shop.ShopDTO"/>
</session-factory>
</hibernate-configuration>
[/XML]
[XML]<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="jSuBA_InterfacePU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>de.wbbcoder.jsuba.model.Brand.BrandDTO</class>
<class>de.wbbcoder.jsuba.model.shop.ShopDTO</class>
<properties>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.connection.username" value=""/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbc.JDBCDriver"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:file:testdb"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
[/XML]
Ich habe außerdem darauf geachtet, dass im IDE unter Project Properties -> Libraries die entsprechenden Pakete eingebunden sind.
Netbeans findet zumindest beim Tippen im Editor auch alle Hibernate-Klassen inklusive dem EntityManager.
Ich habe das Projekt bereits mit "Clean and Build" gestartet, habe das Projekt komplett neu angelegt und sicher gestellt, dass keine Umlaute in Dateipfad vorhanden sind.
Was kann ich sonst noch falsch gemacht haben?
Das gesamte Projekt habe ich der Einfachheit halber auch mal hier commited: https://github.com/Kohtason/jSuBA
vorweg: Leider bin ich mir nicht sicher, ob das Problem bei Hibernate oder Netbeans liegt. Entschuldigt gegebenenfalls die falsche Forenwahl.
Ich habe begonnen unter Netbeans 7.0 eine Swing-Applikation mit HSQLB und Hibernate zu basteln. Dies ist meine erste JPA-Anwendung.
Beim Versuch einen EntityManager anzulegen, bekomme ich folgende Exception:
Code:
Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persistence provider for EntityManager named ShopDTO
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at de.wbbcoder.jsuba.service.ShopService.<init>(ShopService.java:17)
Meine Service-Klasse sieht so aus:
Java:
package de.wbbcoder.jsuba.service;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import de.wbbcoder.jsuba.model.shop.ShopDTO;
public class ShopService {
private EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("ShopDTO");
public ShopService() {
}
public void createShop(ShopDTO shopDTO) {
EntityManager em = emf.createEntityManager();
em.persist(shopDTO);
em.close();
}
}
Mein DTO/DAO/Whatever pflege ich mit Annotations:
Java:
package de.wbbcoder.jsuba.model.shop;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table (name = "Shops")
public class ShopDTO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
public ShopDTO() {
}...
Ich habe in einem Ordner META-INF auch entsprechende persistence.xml und hibernate.cfg.xml platziert:
[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="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:file:testdb</property>
<property name="hibernate.show_sql">true</property>
<mapping class="jsuba.model.shop.ShopDTO"/>
</session-factory>
</hibernate-configuration>
[/XML]
[XML]<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="jSuBA_InterfacePU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>de.wbbcoder.jsuba.model.Brand.BrandDTO</class>
<class>de.wbbcoder.jsuba.model.shop.ShopDTO</class>
<properties>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.connection.username" value=""/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbc.JDBCDriver"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:file:testdb"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
[/XML]
Ich habe außerdem darauf geachtet, dass im IDE unter Project Properties -> Libraries die entsprechenden Pakete eingebunden sind.
Netbeans findet zumindest beim Tippen im Editor auch alle Hibernate-Klassen inklusive dem EntityManager.
Ich habe das Projekt bereits mit "Clean and Build" gestartet, habe das Projekt komplett neu angelegt und sicher gestellt, dass keine Umlaute in Dateipfad vorhanden sind.
Was kann ich sonst noch falsch gemacht haben?
Das gesamte Projekt habe ich der Einfachheit halber auch mal hier commited: https://github.com/Kohtason/jSuBA
Zuletzt bearbeitet: