GlassFish + postgres - @SequenceGenerator sa nevytvori
Ondřej Fafejta
fafejta.ondrej na gmail.com
Pátek Únor 19 14:51:26 CET 2010
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 <msk.conf na gmail.com> 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
>
Další informace o konferenci Konference