openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Linskey" <plins...@gmail.com>
Subject Re: @UniqueConstraint annotation
Date Tue, 28 Aug 2007 21:51:46 GMT
I just resolved this in trunk. It will be in the next 1.1.0-SNAPSHOT build.

-Patrick

On 8/28/07, Patrick Linskey <plinskey@gmail.com> wrote:
> That sounds like
> https://issues.apache.org/jira/browse/OPENJPA-282
>
> It should be a trivial fix; we just need to update our Postgres
> DBDictionary.
>
>  -Patrick
>
>
> On 8/28/07, ben short <jamin.short@gmail.com> wrote:
> > Hi,
> >
> > I have upgraded to 1.0.0-SNAPSHOT and see a different error..
> >
> > 31  openjpa  INFO   [main] openjpa.Runtime - Starting OpenJPA
> 1.0.0-SNAPSHOT
> > 469  openjpa  TRACE  [main] openjpa.jdbc.SQL - <t 6206601, conn
> > 27182317> executing prepstmnt 23103355 SELECT NULL AS SEQUENCE_SCHEMA,
> > relname AS SEQUENCE_NAME FROM pg_class WHERE relkind='S'
> > 469  openjpa  TRACE  [main] openjpa.jdbc.SQL - <t 6206601, conn
> > 27182317> [0 ms] spent
> > 484  openjpa  TRACE  [main] openjpa.jdbc.SQL - <t 6206601, conn
> > 25086455> executing stmnt 3874616 CREATE TABLE AttributeAndValue (id
> > BIGSERIAL NOT NULL, mAttribute VARCHAR(255), mValue VARCHAR(255),
> > version INTEGER, mProductInstance BYTEA, PRIMARY KEY (id), UNIQUE
> > (mAttribute, mValue) DEFERRABLE)
> > 484  openjpa  TRACE  [main] openjpa.jdbc.SQL - <t 6206601, conn
> > 25086455> [0 ms] spent
> > Exception in thread "main" <openjpa-1.0.0-SNAPSHOT-r420667:564688
> > nonfatal general error>
> > org.apache.openjpa.persistence.PersistenceException:
> ERROR: syntax
> > error at or near "DEFERRABLE" {stmnt 3874616 CREATE TABLE
> > AttributeAndValue (id BIGSERIAL NOT NULL, mAttribute VARCHAR(255),
> > mValue VARCHAR(255), version INTEGER, mProductInstance BYTEA, PRIMARY
> > KEY (id), UNIQUE (mAttribute, mValue) DEFERRABLE)} [code=0,
> > state=42601]
> >         at
> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java
> :549)
> >         at
> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:449)
> >         at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:170)
> >         at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl
> (JDBCBrokerFactory.java:130)
> >         at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:186)
> >         at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java
> :142)
> >         at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:190)
> >         at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(
> EntityManagerFactoryImpl.java:143)
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> >         at java.lang.reflect.Method.invoke(Method.java:597)
> >         at
> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke
> (AbstractEntityManagerFactoryBean.java:375)
> >         at $Proxy0.createEntityManager(Unknown Source)
> >         at
> com.daisytechnologies.jpatest.Main.insert(Main.java:45)
> >         at com.daisytechnologies.jpatest.Main.main
> (Main.java:39)
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> >         at java.lang.reflect.Method.invoke(Method.java:597)
> >         at
> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> > Caused by:
> org.apache.openjpa.lib.jdbc.ReportingSQLException : ERROR:
> > syntax error at or near "DEFERRABLE" {stmnt 3874616 CREATE TABLE
> > AttributeAndValue (id BIGSERIAL NOT NULL, mAttribute VARCHAR(255),
> > mValue VARCHAR(255), version INTEGER, mProductInstance BYTEA, PRIMARY
> > KEY (id), UNIQUE (mAttribute, mValue) DEFERRABLE)} [code=0,
> > state=42601]
> >         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
> >         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800
> (LoggingConnectionDecorator.java:57)
> >         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:754)
> >         at
> org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate
> (DelegatingStatement.java:114)
> >         at
> org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1185)
> >         at
> org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949)
> >         at
> org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526)
> >         at
> org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
> >         at
> org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java
> :321)
> >         at
> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:497)
> >         ... 20 more
> >
> > Im using Postgres version 8.1 with Postgres Jdbc driver version
> 8.1-408.jdbc3.
> >
> > Heres the sql,
> >
> > CREATE TABLE AttributeAndValue (id BIGSERIAL NOT NULL, mAttribute
> > VARCHAR(255), mValue VARCHAR(255), version INTEGER, mProductInstance
> > BYTEA, PRIMARY KEY (id), UNIQUE (mAttribute, mValue) DEFERRABLE)
> >
> > if I remove the DEFERRABLE then the ddl executes without errors.
> >
> > The Postgres 8.1 docs [1] say..
> >
> > DEFERRABLE
> > NOT DEFERRABLE
> >
> > This controls whether the constraint can be deferred. A constraint
> > that is not deferrable will be checked immediately after every
> > command. Checking of constraints that are deferrable may be postponed
> > until the end of the transaction (using the SET CONSTRAINTS command).
> > NOT DEFERRABLE is the default. Only foreign key constraints currently
> > accept this clause. All other constraint types are not deferrable.
> >
> > Regards
> >
> > Ben
> >
> > On 8/28/07, Patrick Linskey <plinskey@gmail.com> wrote:
> > > Hi,
> > >
> > > I think that this is actually a limitation of OpenJPA currently --
> > > OpenJPA ignores unique constraints and some (most?) index definitions
> > > when generating a schema.
> > >
> > > Could you attach the full stack trace to
> > > https://issues.apache.org/jira/browse/OPENJPA-340
> please? It'll be
> > > useful for resolving the issue.
> > >
> > > -Patrick
> > >
> > > On 8/28/07, Ignacio Andreu < plunchete@gmail.com> wrote:
> > > > Hi,
> > > >
> > > > Regarding the documentation about OpenJPA you can define a unique
> column
> > > > with something like that:
> > > >
> > > > @Entity
> > > > @Table(name="ART",
> uniqueConstraints=@Unique(columnNames="TITLE"))
> > > > public class Article {
> > > >     ...
> > > > }
> > > >
> > > > And in XML
> > > >
> > > > <entity class="org.mag.Article">
> > > >     <table name="ART">
> > > >         <unique-constraint>
> > > >             <column-name>TITLE</column-name>
> > > >         </unique-constraint>
> > > >     </table>
> > > >     ...
> > > > </entity>
> > > >
> > > > For more information see the "Unique Constraints" section [1]
> > > >
> > > > - Ignacio
> > > >
> > > >
> > > > [1]
> > > >
> http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_overview_mapping_unq
> > > >
> > > > On 8/28/07, ben short <jamin.short@gmail.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > I am trying to use the @UniqueConstraint annotation but get the
> > > > > following error message..
> > > > >
> > > > > OpenJPA does not yet support the @UniqueConstraint annotation.
> > > > >
> > > > > Is that any plan to implement this feature in the near future? Can
I
> > > > > define the mapping for the class that I'm trying to annotate in xml
> > > > > rather than use the annotations to use the UniqueConstraint feature?
> > > > >
> > > > > Regards
> > > > >
> > > > > Ben Short
> > > > >
> > > >
> > >
> > >
> > > --
> > > Patrick Linskey
> > > 202 669 5907
> > >
> >
>
>
>
> --
>
> Patrick Linskey
> 202 669 5907


-- 
Patrick Linskey
202 669 5907

Mime
View raw message