On Mon, Mar 28, 2011 at 5:43 AM, Oliver Jowett <oliver@opencloud.com> wrote:
> On 28 March 2011 21:02, sdavidr <david.ricoma@gmail.com> wrote:
>
>> The question is: is it very difficult to change that to a more correct
>> returning [identifier] ?
>
> BTW, the driver *does* do exactly this if you call the query execution
> methods that take an array of column names to return as generated
> keys.
> You only get RETURNING * added to the query if you asked for
> RETURN_GENERATED_KEYS without specifying any column names.
> So it sounds like Hibernate is doing something wrong, but it's very
> hard to tell without seeing a concrete testcase.
>
Ok, looking at the hibernate source this is what is in the PostgreSQLDialect
public String getIdentitySelectString(String table, String column, int type) {
return new StringBuffer().append("select currval('")
.append(table)
.append('_')
.append(column)
.append("_seq')")
.toString();
}
which will work assuming you are using sequences for identities. There
are some other issues in the dialect, but for the most part it is
sane.
So we will need to see exactly what you are doing that does not work.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca