[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5305) selecting elements from a collection of elements fails strangely

Karsten Behrmann (JIRA) noreply at atlassian.com
Fri Jun 18 11:04:23 EDT 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=37504#action_37504 ] 

Karsten Behrmann commented on HHH-5305:
---------------------------------------

After some meditation, I believe I assigned this to the wrong component:

it seems the ".id" reference comes from AbstractPropertyMapping, set in initPropertyPaths(),
where the if() block around line 186 does not properly handle collections of components.

(disclaimer: I am not experienced in this code. This is the best I could pin the bug down, but it may be wildly wrong)

> selecting elements from a collection of elements fails strangely
> ----------------------------------------------------------------
>
>                 Key: HHH-5305
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5305
>             Project: Hibernate Core
>          Issue Type: Improvement
>          Components: query-hql
>    Affects Versions: 3.5.1
>         Environment: PostgreSQL / hsqldb
>            Reporter: Karsten Behrmann
>   Original Estimate: 6h
>  Remaining Estimate: 6h
>
> The query
> "select el from Foo f join f.elements el"
> produces a SQL select clause for merely "elements.id" (though joined correctly),
> if "elements" is a set of composite-element.
> It should rather select for all properties of the composite-element.
> Effect:
> - If there is no column called "id", the query fails database parse
> (provoke by explicitly doing <key column="fooID" />)
> - If the composite-element has more than one property, hibernate ResultSet parsing fails asking for missing col_0_1_
> - If the composite-element has one property, assignment-compatible with whatever the database column "id" happens to be, the query succeeds, returning a list of elements with the property set to the value of "id".
> So it seems like support is almost there. This may be a regression, or a not-quite-completed feature. Succeeding quietly with bad data is Not Good, but the case should not occur much in practice (composite-element with one property is not very useful).
> Workaround: explicitly select each property, as in
> "select el.name, el.created, el.importance from Foo f join f.elements el"
> and manually instantiate the element class.
> (This seems to still fail on <any> properties, but that is probably an unrelated problem)

-- 
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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list