]
Steve Ebersole closed HHH-909.
------------------------------
Closing stale resolved issues
Onquoted primary key in IncrementGenerator
------------------------------------------
Key: HHH-909
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-909
Project: Hibernate Core
Issue Type: Improvement
Components: core
Affects Versions: 3.0.5
Reporter: Andrey Grebnev
Priority: Minor
Fix For: 3.1 rc 1
Original Estimate: 10m
Remaining Estimate: 10m
I have examined the source code of Hibernate 3.0.5 and I found following problem.
In org.hibernate.id.IncrementGenerator we can see the following code
if (column==null) column = params.getProperty(PersistentIdentifierGenerator.PK);
...
sql = "select max(" + column + ") from " + buf.toString();
and in
org.hibernate.mapping.SimpleValue
params.setProperty( PersistentIdentifierGenerator.PK, ( (Column)
getColumnIterator().next() ).getName() );
getName() of org.hibernate.mapping.Column returns unquoted string.
It is very bad because different DBMSes interpret unquoted field names in different
manner. E.g. PostgreSQL converts all field names into lowercase and HSQLDB converts all
field names into uppercase.
As result the application built on Hibernate with IncrementGenerator is not portable.
I offer to change
params.setProperty( PersistentIdentifierGenerator.PK, ( (Column)
getColumnIterator().next() ).getName() );
to
params.setProperty( PersistentIdentifierGenerator.PK, ( (Column)
getColumnIterator().next() ).getQuotedName(dialect) );
Andrey Grebnev
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: