[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1088?page=c...
]
Gail Badner updated HHH-1088:
-----------------------------
Fix Version/s: (was: 3.3.x)
Full support for composite ID and component projections will require additions to the API.
I'm creating EnhancedProjection, which extends Projection and adds the required
methods.
SimpleProjection, PropertyProjection, ProjectionList, and some other classes that extend
Projection will be changed to extend EnhancedProjection.
IdentifierProjection does not work with composite keys
------------------------------------------------------
Key: HHH-1088
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1088
Project: Hibernate Core
Issue Type: Bug
Components: query-criteria
Affects Versions: 3.1 rc2
Reporter: Max Muermann
Assignee: Gail Badner
Fix For: 3.5.0.Next
Attachments: CompositeIdProjection.java, CriteriaLoader.java
When working with Criteria queries, the IdentifierProjection breaks if the entity has a
composite key.
In IdentifierProjection.java:
public String toSqlString(Criteria criteria, int position, CriteriaQuery criteriaQuery)
throws HibernateException {
StringBuffer buf = new StringBuffer();
String[] cols = criteriaQuery.getIdentifierColumns(criteria);
for ( int i=0; i<cols.length; i++ ) {
buf.append( cols[i] )
.append(" as y")
.append(position + i)
.append('_');
}
return buf.toString();
}
This method does not add commas as separators between the column names. Easily fixed by
adding
if (i<col.length-1)
buf.append(",");
as the last statement inside the loop.
However, this leads to another problem:
the type returned by IdentifierProjection.geType is the (single) type of the composite id
component. The query will however return the property values of the id component without a
mapping step.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira