### Eclipse Workspace Patch 1.0 #P castor Index: cpa/src/main/java/org/castor/cpa/persistence/sql/keygen/SequenceAfterKeyGenerator.java =================================================================== --- cpa/src/main/java/org/castor/cpa/persistence/sql/keygen/SequenceAfterKeyGenerator.java (revision 8303) +++ cpa/src/main/java/org/castor/cpa/persistence/sql/keygen/SequenceAfterKeyGenerator.java (working copy) @@ -115,17 +115,9 @@ private class PostgresqlType extends SequenceKeyGenValueHandler { protected Object getValue(final Connection conn, final String tableName, final String primKeyName, final Properties props) throws Exception { - Object insStmt = props.get("insertStatement"); - Class stmtClass = Class.forName("org.postgresql.jdbc2.AbstractJdbc2Statement"); - if (stmtClass == null) { stmtClass = Class.forName("org.postgresql.Statement"); } - Method getLastOID = stmtClass.getMethod("getLastOID", (Class[]) null); - Long lastOID = (Long) getLastOID.invoke(insStmt, (Object[]) null); - PreparedStatement stmt = conn.prepareStatement( - "SELECT " + _factory.quoteName(primKeyName) - + " FROM " + _factory.quoteName(tableName) + " WHERE OID=?"); - stmt.setLong(1, lastOID.longValue()); - ResultSet rs = stmt.executeQuery(); - return _typeHandler.getValue(rs); + return getValue("SELECT " + + "currval(" + _factory.quoteName(getSeqName(tableName, primKeyName)) + + ")", conn); } } Index: src/doc/release-notes.xml =================================================================== --- src/doc/release-notes.xml (revision 8304) +++ src/doc/release-notes.xml (working copy) @@ -91,6 +91,26 @@ ]]> + + + Change logic for PostgreSQL to retrieve generated key at SequenceAfterKeyGenerator. + + + Ahmad Hassan + ahmad.hassan@gmail.com + + + Ralf Joachim + ralf.joachim@syscon.eu + + + Ahmad Hassan + ahmad.hassan@gmail.com + + Enh. + JDO + 20090728 + Construct SQL SELECT Query inside SQLStatementUpdateCheck.