Re: What Hibernate Object ID generator is recommanded for

Lists: pgsql-jdbc
From: Vernon <vwu725(at)yahoo(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: What Hibernate Object ID generator is recommanded for PG?
Date: 2005-04-21 21:13:49
Message-ID: 20050421211349.29702.qmail@web40529.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Hi,

Here is what I have:

Java class:

public class User {

private Integer id;
...
}

Hibernate Mapping:

<class name="com.ccc.domain.User" table="users">
<id name="id" type="int" unsaved-value="null"
>
<generator class="native"/>
</id>
...
</class>

DB Table:

create table USERS (
id SERIAL UNIQUE primary key,
...
)

When I call the save(object) method of Hibernate, I
get the following exception:

2005-04-21 13:52:13,859 ERROR
org.springframework.web.servlet.DispatcherServlet -
Could not complete request
org.springframework.jdbc.BadSqlGrammarException: Bad
SQL grammar [] in task 'Hibernate operation'; nested
exception is java.sql.SQLException: ERROR: relation
"hibernate_sequence" does not exist
java.sql.SQLException: ERROR: relation
"hibernate_sequence" does not exist
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1365)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1160)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:172)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:387)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:328)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:238)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at
net.sf.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:64)
at
net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:774)
at
net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:747)
at
org.springframework.orm.hibernate.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:386)
at
org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:243)
at
org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:383)

It seems the native ID generator doesn't work properly
in PG. After changing the generator to sequence. I get
the same exception. According to the Hibernate
documentation, that is the right way. Any suggestions
on the subject?

Thanks,

Vernon

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Vernon <vwu725(at)yahoo(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: What Hibernate Object ID generator is recommanded for
Date: 2005-04-21 22:14:34
Message-ID: 426825CA.5000500@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Vernon wrote:

> It seems the native ID generator doesn't work properly
> in PG. After changing the generator to sequence. I get
> the same exception. According to the Hibernate
> documentation, that is the right way. Any suggestions
> on the subject?

You should probably ask on the Hibernate lists about this.

-O


From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Vernon <vwu725(at)yahoo(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: What Hibernate Object ID generator is recommanded for
Date: 2005-04-21 22:43:10
Message-ID: 42682C7E.40201@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Vernon,

You need to create a sequence called hibernate_sequence

create sequence hibernate_sequence;

Dave
Vernon wrote:

>Hi,
>
>Here is what I have:
>
>Java class:
>
>public class User {
>
> private Integer id;
>...
>}
>
>Hibernate Mapping:
>
> <class name="com.ccc.domain.User" table="users">
> <id name="id" type="int" unsaved-value="null"
>
>
> <generator class="native"/>
> </id>
>...
> </class>
>
>DB Table:
>
>create table USERS (
> id SERIAL UNIQUE primary key,
>...
>)
>
>When I call the save(object) method of Hibernate, I
>get the following exception:
>
>2005-04-21 13:52:13,859 ERROR
>org.springframework.web.servlet.DispatcherServlet -
>Could not complete request
>org.springframework.jdbc.BadSqlGrammarException: Bad
>SQL grammar [] in task 'Hibernate operation'; nested
>exception is java.sql.SQLException: ERROR: relation
>"hibernate_sequence" does not exist
>java.sql.SQLException: ERROR: relation
>"hibernate_sequence" does not exist
> at
>org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1365)
> at
>org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1160)
> at
>org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:172)
> at
>org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:387)
> at
>org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:328)
> at
>org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:238)
> at
>org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
> at
>net.sf.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:64)
> at
>net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:774)
> at
>net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:747)
> at
>org.springframework.orm.hibernate.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:386)
> at
>org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:243)
> at
>org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:383)
>
>It seems the native ID generator doesn't work properly
>in PG. After changing the generator to sequence. I get
>the same exception. According to the Hibernate
>documentation, that is the right way. Any suggestions
>on the subject?
>
>Thanks,
>
>Vernon
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam? Yahoo! Mail has the best spam protection around
>http://mail.yahoo.com
>
>---------------------------(end of broadcast)---------------------------
>TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>
>
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


From: "Xavier Poinsard" <xpoinsard(at)free(dot)fr>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: What Hibernate Object ID generator is recommanded for
Date: 2005-04-22 08:46:47
Message-ID: 4268B9F7.6010908@free.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Use

<generator class="native">
<param name="sequence">YourSequence</param>
</generator>

and, of course, create a sequence named YourSequence.

Vernon wrote:
> Hi,
>
> Here is what I have:
>
> Java class:
>
> public class User {
>
> private Integer id;
> ...
> }
>
> Hibernate Mapping:
>
> <class name="com.ccc.domain.User" table="users">
> <id name="id" type="int" unsaved-value="null"
>
> <generator class="native"/>
> </id>
> ...
> </class>
>
> DB Table:
>
> create table USERS (
> id SERIAL UNIQUE primary key,
> ...
> )
>
> When I call the save(object) method of Hibernate, I
> get the following exception:
>
> 2005-04-21 13:52:13,859 ERROR
> org.springframework.web.servlet.DispatcherServlet -
> Could not complete request
> org.springframework.jdbc.BadSqlGrammarException: Bad
> SQL grammar [] in task 'Hibernate operation'; nested
> exception is java.sql.SQLException: ERROR: relation
> "hibernate_sequence" does not exist
> java.sql.SQLException: ERROR: relation
> "hibernate_sequence" does not exist
> at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1365)
> at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1160)
> at
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:172)
> at
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:387)
> at
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:328)
> at
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:238)
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
> at
> net.sf.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:64)
> at
> net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:774)
> at
> net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:747)
> at
> org.springframework.orm.hibernate.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:386)
> at
> org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:243)
> at
> org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:383)
>
> It seems the native ID generator doesn't work properly
> in PG. After changing the generator to sequence. I get
> the same exception. According to the Hibernate
> documentation, that is the right way. Any suggestions
> on the subject?
>
> Thanks,
>
> Vernon
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>