]
Karsten Behrmann commented on HHH-5305:
---------------------------------------
It seems the test is already there, but currently commented out:
CompositeElementTest.java line 77:
{noformat}//s.createQuery("select c from Parent p left outer join p.children c where
c.name like 'Child%'").uniqueResult(); //we really need to be able to do
this!{noformat}
And yes, this still does not work on 3.5.3
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: