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&#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
>

Odpovedet emailem