Zkuste to takto:

@Entity
@SequenceGenerator(name = "MYSEQUENCE", sequenceName = "mysequence")
public class ClientRequest implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = 
"MYSEQUENCE")
    @Column(name = "id", nullable = false)
    private Long id;

Anotace definujici generator je u tridy a u id je pouze odkaz na ni pomoci 
jmena. Ja to takto pouzivam a je vse OK.

Jaroslav Hurdes


Dne 19.2.2010 14:32, Dusan Zatkovsky napsal(a):
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


Odpovedet emailem