PostgreSQL Hibernate & PostgreSQL

fsicher

Bekanntes Mitglied
Hallo

Hallo zusammen

Ich versuche ein enfaches Beispiel mit Hibernate (3.6.1) und JPA zu realisieren, als DBMS setze ich PostgreSQL 9.x ein. Ich arbeite mit Annotationen und ohne eines AS (heisst, Hibernate mit Java SE).

Mein Problem ist folgendes:
Obwoh ich überall gelesen habe, dass das Hibernate die Db-Struktur (sprich Tabellen) selbst erstellen sollte (die Db habe ich selbst erstellt), bringe ich es einfach nicht fertig. Die Zeile

[XML]<property name="hibernate.hbm2dll.auto">create</property>[/XML]

in der "hibernate.cfg.xml" habe ich auch mit 'update' ausprobiert. Ich bekomme immer die Meldung, dass die entsprechende Relation (Tabelle) nicht gefunden wurde. Wenn ich Tabelle selbst von Hand anlege, funktioniert es.

Nun, geht das überhaupt, wenn man ohne AS arbeitet? Und falls ja, was muss ich anders machen, damit es klappt?

Hier noch meien Klassen:
Java:
package deni.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Person {
	@Id
	@GeneratedValue
	private Long id;
	private String firstname;
	private String lastname;

	public Person() {
	}

	/**
	 * @param firstname
	 * @param lastname
	 */
	public Person(String firstname, String lastname) {
		this.firstname = firstname;
		this.lastname = lastname;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the firstname
	 */
	public String getFirstname() {
		return firstname;
	}

	/**
	 * @param firstname
	 *            the firstname to set
	 */
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	/**
	 * @return the lastname
	 */
	public String getLastname() {
		return lastname;
	}

	/**
	 * @param lastname
	 *            the lastname to set
	 */
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
}

Java:
package deni.util;

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

public class HibernateUtil {
	private static final SessionFactory sessionFactory;

	static {
		try {
			/* SessionFactory erzeugen */
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable e) {
			System.out
					.println("\nSessionFactory konnte nicht angelegt werden!\n\n"
							+ e);
			throw new ExceptionInInitializerError(e);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}

Java:
package test.person;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.testng.Assert;
import org.testng.annotations.Test;

import deni.model.Address;
import deni.model.Person;
import deni.util.HibernateUtil;
import deni.util.PersonDAO;


public class TestApp {

	@Test
	public void testAddressHandling() {

		Address a = new Address("Teststrasse 8", 9900, "TestCity");

		//a.setId(1L);

		Session s = HibernateUtil.getSessionFactory().openSession();

		Transaction tx = s.beginTransaction();

		s.save(a);

		tx.commit();

		s.close();
	}
}


Hier noch die hibernate.cfg.xml:
[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="connection.url">jdbc:postgresql://localhost:5432/demo_db</property>
<property name="connection.username">postgres</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="connection.password">postgres</property>

<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>

<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2dll.auto">create</property>

<!-- mapping files -->
<mapping class="deni.model.Person" />
</session-factory>
</hibernate-configuration>
[/XML]

Und noch die "persistence.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="testPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>

<class>deni.model.Person</class>

<properties>
<property name="hibernate.connection.username" value="postgres"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.connection.password" value="postgres"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/demo_db"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
[/XML]

Ich bin mir nicht sicher, ob ich die "persistence.xml" wirklich brauche!

Nun, vielleicht sieht jemand, was hier falsch ist. Wieso wird die Tabelle für Address-Instanzen nicht automatisch angelegt? Liegt es an Annotationen? Oder Konfigurationsangaben (xml-Dateien)? Oder, liege ich voll daneben ...

Die Programmausgabe:
[XML]
Setting connection parameters:127.0.0.1:55838
[TestNG] Running:
C:\Users\jsucur\AppData\Local\Temp\testng-eclipse-1538659177\testng-customsuite.xml

93 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
98 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.1.Final
99 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
102 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
104 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
152 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
152 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
178 [main] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace Hibernate - JBoss Community. Use namespace Index of /dtd/hibernate instead. Refer to Hibernate 3.6 Migration Guide!
211 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
254 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: deni.model.Person
290 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity deni.model.Person on table Person
332 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
336 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
342 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
342 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
342 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
357 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/demo_db
357 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}
437 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->
name : PostgreSQL
version : 9.0rc1
major : 9
minor : 0
438 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->
name : PostgreSQL Native Driver
version : PostgreSQL 9.0 JDBC4 (build 801)
major : 9
minor : 0
455 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
467 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
468 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
469 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
469 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
470 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
470 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
470 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
470 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
470 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
470 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
471 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
471 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
471 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
471 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
471 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
472 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
472 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
472 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
472 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
472 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
472 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
473 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
473 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
476 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
476 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
476 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
476 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
477 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
477 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
496 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
503 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@70c26b16
706 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
FAILED: testAddressHandling
org.hibernate.MappingException: Unknown entity: deni.model.Address
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:693)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1485)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:120)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at test.person.TestApp.testAddressHandling(TestApp.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:674)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:847)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1152)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:1119)
at org.testng.TestRunner.privateRun(TestRunner.java:744)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
at org.testng.SuiteRunner.run(SuiteRunner.java:221)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:952)
at org.testng.TestNG.runSuitesLocally(TestNG.java:889)
at org.testng.TestNG.run(TestNG.java:818)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:89)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:144)


===============================================
test.person.TestApp
Tests run: 1, Failures: 1, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================


[/XML]
 
M

maki

Gast
Du zeigst weder den Code für die Address Entity, noch steht in deinen configs etwas darüber, dass Address eine entity ist.

JPA/Hiberntae funktionieren auch ohne einen AS.
 

fsicher

Bekanntes Mitglied
Sorry ... habe beim Kopieren die falsche Klasse erwischt ;-). An sich habe ich zwei Klassen: Person und Address, habe aber, um es kürzer zu halten, nur eine angeben wollen.

Hier noch einmal die Klassen Person und Address und die Konfig-Dateien:

Java:
package deni.model;

import javax.persistence.*;

@Entity
public class Address {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	private String street;
	private long postcode;
	private String city;

	public Address() {
	}

	/**
	 * @param street
	 * @param postcode
	 * @param city
	 */
	public Address(String street, long postcode, String city) {
		this.street = street;
		this.postcode = postcode;
		this.city = city;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the street
	 */
	public String getStreet() {
		return street;
	}

	/**
	 * @param street
	 *            the street to set
	 */
	public void setStreet(String street) {
		this.street = street;
	}

	/**
	 * @return the postcode
	 */
	public long getPostcode() {
		return postcode;
	}

	/**
	 * @param postcode
	 *            the postcode to set
	 */
	public void setPostcode(long postcode) {
		this.postcode = postcode;
	}

	/**
	 * @return the city
	 */
	public String getCity() {
		return city;
	}

	/**
	 * @param city
	 *            the city to set
	 */
	public void setCity(String city) {
		this.city = city;
	}
}

Java:
package deni.model;

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

@Entity
public class Person {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	private String firstname;
	private String lastname;

	public Person() {
	}

	/**
	 * @param firstname
	 * @param lastname
	 */
	public Person(String firstname, String lastname) {
		this.firstname = firstname;
		this.lastname = lastname;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the firstname
	 */
	public String getFirstname() {
		return firstname;
	}

	/**
	 * @param firstname
	 *            the firstname to set
	 */
	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	/**
	 * @return the lastname
	 */
	public String getLastname() {
		return lastname;
	}

	/**
	 * @param lastname
	 *            the lastname to set
	 */
	public void setLastname(String lastname) {
		this.lastname = lastname;
	}
}

Die hibernate.cfg.xml:
[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="connection.url">jdbc:postgresql://localhost:5432/demo_db</property>
<property name="connection.username">postgres</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="connection.password">postgres</property>

<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>

<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2dll.auto">create</property>

<!-- mapping files -->
<mapping class="deni.model.Person" />
<mapping class="deni.model.Address" />
</session-factory>
</hibernate-configuration>
[/XML]

Die persistence.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="testPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>

<class>deni.model.Person</class>
<class>deni.model.Address</class>

<properties>
<property name="hibernate.connection.username" value="postgres"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.connection.password" value="postgres"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/demo_db"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
[/XML]

Die Klasse HibernateUtil ist unverändert geblieben. Die Klasse TestApp sieht jetzt wie folgt aus:

Java:
public class TestApp {

	@Test
	public void testAddressHandling() {

		Address a = new Address("Musterstrasse 8", 9000, "MusterOrt");
		Person p = new Person("Hans", "Muster");
		
		Session s = HibernateUtil.getSessionFactory().openSession();
		Transaction tx = s.getTransaction();

		tx.begin();
		s.save(a);
		tx.commit();
		
		tx.begin();
		s.save(p);
		tx.commit();
	
		s.close();

	}
}

Und, die Ausgabe:

[XML]
221 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
233 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.1.Final
236 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
241 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
247 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
362 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
362 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
422 [main] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace Hibernate - JBoss Community. Use namespace Index of /dtd/hibernate instead. Refer to Hibernate 3.6 Migration Guide!
496 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
589 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: deni.model.Person
663 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity deni.model.Person on table Person
748 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: deni.model.Address
749 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity deni.model.Address on table Address
757 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
765 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
776 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
776 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
776 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
807 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/demo_db
808 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}
987 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->
name : PostgreSQL
version : 9.0rc1
major : 9
minor : 0
987 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->
name : PostgreSQL Native Driver
version : PostgreSQL 9.0 JDBC4 (build 801)
major : 9
minor : 0
1025 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
1053 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
1055 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
1057 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1057 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
1058 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
1058 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
1058 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
1059 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
1059 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
1059 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
1061 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
1061 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
1061 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
1061 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
1061 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1065 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1065 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1066 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1066 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1066 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1066 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
1068 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1068 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1077 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
1078 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1079 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1079 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1079 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1079 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
1123 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1134 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@6c04ab2f
1571 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Hibernate: select nextval ('hibernate_sequence')
1677 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42P01
1677 [main] ERROR org.hibernate.util.JDBCExceptionReporter - FEHLER: Relation »hibernate_sequence« existiert nicht
Position: 17
FAILED: testAddressHandling
org.hibernate.exception.SQLGrammarException: could not get next sequence value
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:132)
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:105)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at test.person.TestApp.testAddressHandling(TestApp.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:674)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:847)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1152)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:1119)
at org.testng.TestRunner.privateRun(TestRunner.java:744)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
at org.testng.SuiteRunner.run(SuiteRunner.java:221)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:952)
at org.testng.TestNG.runSuitesLocally(TestNG.java:889)
at org.testng.TestNG.run(TestNG.java:818)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:89)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:144)
Caused by: org.postgresql.util.PSQLException: FEHLER: Relation »hibernate_sequence« existiert nicht
Position: 17
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
at org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:112)
... 35 more


===============================================
test.person.TestApp
Tests run: 1, Failures: 1, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
[/XML]

Hoffe, dass ich jetzt nichts vergessen habe.
 
Zuletzt bearbeitet:

fsicher

Bekanntes Mitglied
Habe es irgendwie "gelöst". Falls es jemand gebrauchen kann ...


Da ich mit JPA und Hibernate arbeite, brauche ich an sich keine hibernate.cfg.xml: benötigt wird nur persistence.xml, die im META-INF sein muss.

Der Fehler war (aus meiner Sicht - bin froh um Korrekturen), dass ich mit org.hibernate.SessionFactory anstatt mit javax.persistence.EntityManagerFactory gearbeitet habe ;-(

Hier noch meine bereinigte HibernateUtil-Klasse:

Java:
package deni.util;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class HibernateUtil {

	private static final EntityManagerFactory entityManagerFactory;

	static {
		try {
			/* EntityManagerFactory erzeugen */
			entityManagerFactory = Persistence.createEntityManagerFactory("testPU");
		} catch (Throwable e) {
			System.out
					.println("\nEntityManagerFactory konnte nicht angelegt werden!\n\n"
							+ e);
			throw new ExceptionInInitializerError(e);
		}
	}

	public static EntityManagerFactory getEntityManagerFactory(){
		return entityManagerFactory;
	}
}

Und die TestApp:

Java:
package test.person;

import javax.persistence.EntityManager;

import org.testng.annotations.Test;

import deni.model.Address;
import deni.model.Person;
import deni.util.HibernateUtil;


public class TestApp {

	@Test
	public void testAddressHandling() {

		Address a = new Address("Seestrasse 8", 9000, "MyCity");
		Person p = new Person("Hans", "Muster");

		EntityManager eManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
		eManager.getTransaction().begin();
		eManager.persist(p);
		eManager.persist(a);
		eManager.getTransaction().commit();
		eManager.close();
		
	}
}

Hoffe, das ist jetzt korrekt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D hibernate mit postgreSQL Datenbankprogrammierung 3
B hibernate - postgresql - Sequenz setzen Datenbankprogrammierung 3
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
P erste Schritte mit Hibernate Datenbankprogrammierung 3
V Hibernate Interfaces von anderem Projekt Datenbankprogrammierung 2
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
B Hibernate und portierbare Datenbank Datenbankprogrammierung 3
qwerqer [Hibernate] Mappingvarianten Datenbankprogrammierung 2
lumo Teneo Hibernate & JPA Datenbankprogrammierung 15
Z JPA mit Hibernate - Unable to build EntityManagerFactory Datenbankprogrammierung 7
Dit_ Hibernate, effiziente SQL-Abfrage definieren Datenbankprogrammierung 5
K Hibernate vs. JDBC Datenbankprogrammierung 4
J Hibernate Info 593 ? Datenbankprogrammierung 4
J Erstellen der SessionFactory in Hibernate 4.1 Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
N hibernate: datasource Datenbankprogrammierung 7
H MySQL Hibernate: Updaten vereinfachen Datenbankprogrammierung 2
T Hibernate Division zweier Summen Datenbankprogrammierung 4
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
F GWT und Hibernate - gwt.dev.Compler not found Datenbankprogrammierung 3
M NestedTransaction- Exception in Hibernate Datenbankprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben