HSQLDB EntityManager null?

membersound

Bekanntes Mitglied
Hallo,

ich versuche mir gerade ein Hibernate setup zu basteln. Aber unweigerlich bleibt mein EntityManger null.
Vielleicht seht ihr den Fehler?

Stacktrace:
Java:
Exception in thread "main" java.lang.NullPointerException
	at model.PersonDAO.create(PersonDAO.java:22)
	at model.main.main(main.java:10)

main:
Java:
package model;

public class main {

    public static void main(String[] args){  
        Person person = new Person();  
        person.setName("Hibernate JPA Person");  
        System.out.println("Person id before creation: " + person.getId());  
        PersonDAO personDAO = new PersonDAO();  
        Person persistedCustomer = personDAO.create(person);  
        System.out.println("Person id after creation: " + persistedCustomer.getId());  
    }  

}

DAO:
Java:
package model;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.ejb.Stateless;

@Stateless
public class PersonDAO {

	@PersistenceContext
	private EntityManager em;
	 
    public Person create(Person newPerson) {    
        em.getTransaction().begin();  //<-- exception
        em.persist(newPerson);  
        em.getTransaction().commit();  
        return newPerson;  
    }  
}

Person:
Java:
package model;


import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

import org.hibernate.annotations.Entity;

@Entity
public class Person implements Serializable {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	private String name = "";

	public int getId() {
		return id;
	}

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

	public Person(String name) {
		this.name = name;
	}
	
	public Person() {
	}
	
	public String toString() {
		return name;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

persistence:
Java:
<?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="HolidayCalculatorDB" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
			<property name="hibernate.connection.username" value="" />
			<property name="hibernate.connection.password" value="" />
			<property name="hibernate.connection.url" value="jdbc:hsqldb:MyDB" />
			<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="create-drop"/> <!-- update -->
		</properties>
	</persistence-unit>
</persistence>


Hoffentlich wisst ihr etwas...
 

c2delegate

Mitglied
Java:
Exception in thread "main" java.lang.NullPointerException
    at model.PersonDAO.create(PersonDAO.java:22)

Also a) du könntest mehr vom trace posten
b) willst du bestimmt, dass deine beans container managed laufen

Hole dir in der main die PersonDao über:
Java:
@Beans
PersonDao personDao;
und arbeite so weiter. Lass em.tranaction... weg, mach nur em.persist();
 
Zuletzt bearbeitet:

membersound

Bekanntes Mitglied
Ich habe den komplette Trace gepostet. Es gibt nicht mehr, das ist ja das Problem!

Du meinst @EJB statt @Beans oder?
Aber auch damit und ohne transaction immer noch NPE...

(das Tut hierfür habe ich von http://www.myhomepageindia.com/?p=588)

Ich verseh absolut nicht, warum es so nicht funktioniert.
 
Zuletzt bearbeitet:
M

maki

Gast
Du kannst das so nicht aus einer main starten, brauchst schon einen "Container" der das DI übernimmt.
 

membersound

Bekanntes Mitglied
Leider funktioniert auch das nicht, weil er dann meine Entity nicht mehr erkennt ???:L

Java:
Exception in thread "main" java.lang.IllegalArgumentException: Unknown entity: model.Person
	at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:671)
	at model.StartApp.main(StartApp.java:32)

main:
Java:
    private static EntityManagerFactory factory;
    
	public static void main(String[] args) {
		factory = Persistence.createEntityManagerFactory("HolidayCalculatorDB");
		EntityManager em = factory.createEntityManager();

        em.getTransaction().begin(); 
		Person newPerson = new Person();  
        newPerson.setName("Hibernate JPA Person");  
        System.out.println("Person id before creation: " + newPerson.getId()); 
 
        em.persist(newPerson);  
        em.getTransaction().commit(); 
        em.close();
        System.out.println("Person id after creation: " + newPerson.getId()); 
	}
 

membersound

Bekanntes Mitglied
...und ich sehe gerade, dass in meiner Datenbank gar keine Änderungen gemacht werden. Nichtmal irgendwelche Tabellen werden erstellt.

Aber hbm2ddl scheint seine Arbeit korrekt zu verrichten:
Java:
2526 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
2526 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
2526 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
:autsch:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb EntityManager uniqueResult Datenbankprogrammierung 2
A MySQL Parallel laufende EntityManager kommen sich in die Quere Datenbankprogrammierung 1
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
J Derby/JavaDB NullPointerException bei VORHANDENEM EntityManager-Objekt!!! Datenbankprogrammierung 3
S Hibernate, jpa, EntityManager etc. Datenbankprogrammierung 6
J method createQuery in interface javax.persistence.EntityManager cannot be applied to given types ... Datenbankprogrammierung 2
M No Persistence provider for EntityManager Datenbankprogrammierung 1
S JPA (EntityManager für jeden Nutzer?) Datenbankprogrammierung 8
K Was fehlt? - No Persistence provider for EntityManager Datenbankprogrammierung 4
QDog JPA EntityManager auslagern Datenbankprogrammierung 2
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
N DBUnit und null Datenbankprogrammierung 6
P Null Werte bei der Normalisierung Datenbankprogrammierung 2
Z ResultSet ist null warum? Datenbankprogrammierung 12
krgewb getDouble auch mit null möglich? Datenbankprogrammierung 2
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
zhermann Data truncation: Incorrect date value: 'null' for column Datenbankprogrammierung 31
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
M Derby/JavaDB einen Null-Wert in die Datenbank schreiben Datenbankprogrammierung 7
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
T IllegalArgumentException: Person[ id=null ] is not a known entity type.??? Datenbankprogrammierung 0
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
R JPA dynamisch auf NULL abfragen Datenbankprogrammierung 2
OnDemand LEFT JOIN id hat Null Datenbankprogrammierung 6
P executeQuery liefert null zurück Datenbankprogrammierung 5
P Datenbank- Abfrage mit null'en Datenbankprogrammierung 2
C PreparedStatement und null Datenbankprogrammierung 13
O MySQL PreparedStatements: int null Datenbankprogrammierung 7
S Null Pointer exception statement Datenbankprogrammierung 8
M JPA NOT NULL Datenbankprogrammierung 11
E H2 - Datenbankabfrage gibt NULL aus? Datenbankprogrammierung 4
Q java.lang.NullPointerException connection = null Datenbankprogrammierung 13
C Metadata der SessionFactory immer null Datenbankprogrammierung 2
N Connection bleibt null Datenbankprogrammierung 7
F Derby/JavaDB Exception - Cannot accept Null Value (help) Datenbankprogrammierung 10
G MySQL Timestamp null Datenbankprogrammierung 2
H Fehler bei null-Datum in MySQL-DB Datenbankprogrammierung 2
G getConnection() liefert null Datenbankprogrammierung 3
A MSSQL - Spalten mit der Option: NULL zulassen Datenbankprogrammierung 2
G Hibernate oneToMany Not null Datenbankprogrammierung 4
S Update mit null Datenbankprogrammierung 11
H Date null = 30.11.0002? Datenbankprogrammierung 6
P Fehler: result-set zeigt auf null, aber warum Datenbankprogrammierung 4
R Warum ist meine Connection null? Datenbankprogrammierung 6
P Wie übergebe ich einen NULL Wert in meinem Java-Programm? Datenbankprogrammierung 7
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
D hibernate + null + primitive Datentypen Datenbankprogrammierung 2
F MySQL gibt nur null zurück Datenbankprogrammierung 3
G NULL-data processing. Datenbankprogrammierung 11

Ähnliche Java Themen


Oben