Re: Error while retrieving generated keys - Mailing list pgsql-jdbc
From | Gary Greenberg |
---|---|
Subject | Re: Error while retrieving generated keys |
Date | |
Msg-id | 030801c76279$de152100$740a3c0a@D9GKB4C1 Whole thread Raw |
In response to | Re: Error while retrieving generated keys (QuanZongliang <quanzongliang@hotmail.com>) |
Responses |
Re: Error while retrieving generated keys
Re: Error while retrieving generated keys Re: Error while retrieving generated keys |
List | pgsql-jdbc |
I see it now. It should have been, however, mentioned in documentation for the JDBC driver.
I have also reviewed a recent thread http://archives.postgresql.org/pgsql-jdbc/2007-03/msg00038.php on a similar topic.
The gist of it was how to overcome the deficiency of JDBC3 driver using JDBC1 features.
It looks to me that you, guys, are missing the primary point:
Ability to retrieve auto-generated key is one of the key features of JDB3. It exists for over 2 years and all JDBC3 drivers I know of, supports it.
A lot of frameworks (JPA, Hibernate, etc.) are relying on it. It means that they won’t work with PostgreSQL.
It also means that developers must do a lot of extra tinkering to adopt many standard apps for PostgreSQL.
In essence it means that PostgreSQL has fallen into the third world of database engines.
I used to work a lot with PostgreSQL in mid-90s and loved it but I just recently returned to this world from working with Oracle, Sybase, etc.
I am really disappointed that PostgreSQL is becoming a fossil.
If there are no plans to make this feature work in the very near future, I’ll be pushing for replacement of the engine.
From: QuanZongliang [mailto:quanzongliang@hotmail.com]
Sent: Thursday, March 08, 2007 8:48 PM
To: Gary Greenberg
Cc: pgsql-jdbc@postgresql.org
Subject: RE: [JDBC] Error while retrieving generated keys
from AbstractJdbc3Connection.java:
348 public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
349 throws SQLException
350 {
351 if (autoGeneratedKeys != Statement.NO_GENERATED_KEYS)
352 throw new PSQLException(GT.tr("Returning autogenerated keys is not supported."), PSQLState.NOT_IMPLEMENTED);
353 return prepareStatement(sql);
354 }
So, it is not supported.
Only the prepareStatement(sql, Statement.NO_GENERATED_KEYS) can be used.
From: gary@icontrol.com
To: pgsql-jdbc@postgresql.org
Subject: [JDBC] Error while retrieving generated keys
Date: Thu, 8 Mar 2007 19:49:52 -0800
My application trew the following exception:
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported.
at org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement(AbstractJdbc3Connection.java:352)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:394)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:370)
I am using 8.2-504.jdbc3 driver with the PostgreSql 8.0.8 on SUSE Linux.
I have not seen anywhere in the documentation that this standard JDBC3 feature is not supported.
Can anyone explain it to me, please.
pgsql-jdbc by date: