Hallo.
ich versuche leicht verzweifelt, ein Beispiel EJB3 aus einem Buch - Source-Code unter:
http://files.hanser.de/hanser/docs/20070606_2766133337-61_Beispiele.zip
zu beziehen, package "entity" - auf Postgres-DB umzustellen.
Unter JBoss 4.2 mit der Default-DB Hypersonic funktioniert es fabelhaft.
Laut Anweisung habe ich eine Datei postgres-ds.xml in dem Verzeichnis ...\server\default\deploy hinterlegt und die persistence.xml-Datei wie folgt angepasst sowie die Entity, die Sequenz in Postgres ist ebenfalls definiert (s.u.).
Muss ich weitere Konfigurationen vornehmen - oder hab ich was falsch gemacht?
Vielen Dank für jeden Hinweis!
acky
Dabei erhalte ich folgende Fehlermeldungen:
JBoss:
Client:
Man sagte mir, dass erkennbar sei, dass bereits eine Verbindung zur Postgres-DB daraus zu erkennen sei - was ich jedoch bezweifel.
---------------------------------------------------------
postgres-ds.xml
persistence.xml
Entity:
Sequenz in Postgres:
ich versuche leicht verzweifelt, ein Beispiel EJB3 aus einem Buch - Source-Code unter:
http://files.hanser.de/hanser/docs/20070606_2766133337-61_Beispiele.zip
zu beziehen, package "entity" - auf Postgres-DB umzustellen.
Unter JBoss 4.2 mit der Default-DB Hypersonic funktioniert es fabelhaft.
Laut Anweisung habe ich eine Datei postgres-ds.xml in dem Verzeichnis ...\server\default\deploy hinterlegt und die persistence.xml-Datei wie folgt angepasst sowie die Entity, die Sequenz in Postgres ist ebenfalls definiert (s.u.).
Muss ich weitere Konfigurationen vornehmen - oder hab ich was falsch gemacht?
Vielen Dank für jeden Hinweis!
acky
Dabei erhalte ich folgende Fehlermeldungen:
JBoss:
Code:
11:36:50,875 INFO [STDOUT] Hibernate: select nextval ('public.KUNDE_SEQ')
11:36:51,031 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 42P01
11:36:51,031 ERROR [JDBCExceptionReporter] ERROR: relation "public.kunde_seq" does not exist
Client:
Code:
Exception in thread "main" javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not get next sequence value
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
Man sagte mir, dass erkennbar sei, dass bereits eine Verbindung zur Postgres-DB daraus zu erkennen sei - was ich jedoch bezweifel.
---------------------------------------------------------
postgres-ds.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>PostgresDS</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/postgres</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>postgres</user-name>
<password>postgres</password>
<min-pool-size>1</min-pool-size>
<max-pool-size>4</max-pool-size>
</local-tx-datasource>
</datasources>
persistence.xml
Code:
<persistence>
<persistence-unit name="kunde">
<jta-data-source>java:/PostgresDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres" />
<property name="hibernate.connection.username" value="postgres" />
<property name="hibernate.connection.password" value="postgres" />
<property name="hibernate.default_schema" value="public" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>
</persistence-unit>
</persistence>
Entity:
Code:
@Entity
@SequenceGenerator(name = "KUNDE_SEQ", sequenceName = "KUNDE_SEQ")
public class Kunde implements Serializable {
private int id;
private String vorname;
private String nachname;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "KUNDE_SEQ")
@Column(name = "id")
public int getId() {
return id;
}
Sequenz in Postgres:
Code:
-- Sequence: "KUNDE_SEQ"
-- DROP SEQUENCE "KUNDE_SEQ";
CREATE SEQUENCE "KUNDE_SEQ"
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE "KUNDE_SEQ" OWNER TO postgres;