Ahoj.
Skutocne, zafungovalo jedine
@SequenceGenerator(name = "MYSEQUENCE", sequenceName = "clientrequest_id_seq")
public class ClientRequest implements Serializable {
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator
= "MYSEQUENCE")
Hibernate na glassfish som sa chcel povodne vyhnut ( som lenivy rucne
kopirovat jar-y na vsetky stroje kde to budem pouzivat ), ale asi sa
prekonam.
Diky
> Zdravím,
>
> podobný problém jsme řešili s glassfishem již před několika lety.
> Glassfish neuměl vytvořit a používat námi pojmenovanou sequenci.
> Automaticky vytvářel sequence ve tvaru
>
> nazev_tabulky_id_seq
>
> Dokonce jsem na to psal i dotaz přímo do glassfish.
> http://forums.java.net/jive/thread.jspa?messageID=211876𳮤
>
> V každém případě jiná implementace JPA funguje dle očekávání (např.
> hibernate).
>
> Fafi
>
> On Fri, Feb 19, 2010 at 2:32 PM, Dusan Zatkovsky <[email protected]> wrote:
> > Ahoj.
> >
> > Laborujem s postgres + glassfish a persistenciou. Tabulky si zatial
> > nechavam generovat persistentnou vrstvou.
> >
> > Moj problem je, ze sa nevytvara sequence, napriek tomu, ze som to
> > anotoval.
> >
> > Utrzky kodu a konfiguracie:
> >
> > @Entity
> > public class ClientRequest implements Serializable {
> >
> > private static final long serialVersionUID = 1L;
> > �...@id
> > �...@sequencegenerator(name = "MYSEQUENCE", sequenceName = "mysequence")
> > �...@generatedvalue(strategy = GenerationType.SEQUENCE, generator
> > = "MYSEQUENCE")
> > �...@column(name = "id", nullable = false)
> > private Long id;
> >
> > <persistence-unit name="appVersionPU" transaction-type="JTA">
> > <provider>oracle.toplink.essentials.PersistenceProvider</provider>
> > <jta-data-source>jdbc/test</jta-data-source>
> > <exclude-unlisted-classes>false</exclude-unlisted-classes>
> > <properties>
> > <property name="toplink.logging.level" value="FINER"/>
> > <property name="toplink.target-database" value="PostgreSQL"/>
> > <property name="toplink.ddl-generation" value="create-tables"/>
> > </properties>
> > </persistence-unit>
> >
> >
> > Log z aplikacneho servera:
> >
> > ... connecting(DatabaseLogin(
> >
> > ... CREATE TABLE CLIENTREQUEST (id SERIAL NOT NULL, CUSTOMERCOMPANY
> > VARCHAR(255), CUSTOMERSERIAL VARCHAR(255), CUSTOMERNAME VARCHAR(255),
> > APPNAME VARCHAR(255), CLIENTIP VARCHAR(255), PRIMARY KEY (id))
> >
> > ... INSERT INTO CLIENTREQUEST (CUSTOMERCOMPANY, CUSTOMERSERIAL,
> > CUSTOMERNAME, APPNAME, CLIENTIP) VALUES (?, ?, ?, ?, ?)
> >
> > ...select currval('mysequence')
> >
> > Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build 36
> > (02/17/2007))): oracle.toplink.essentials.exceptions.DatabaseException
> > Internal Exception: org.postgresql.util.PSQLException: ERROR:
> > relation "mysequence" does not existError Code: 0
> > Call:select currval('mysequence')
> > Query:ValueReadQuery()
> >
> >
> > Moja otazka znie, preco ta sekvencia nebola vytvorena. Tusi niekto?
> >
> > Diky
> >
> > --
> > Dusan
> >
> >
> > ... tykajte mi
--
Dusan
... tykajte mi