[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1829?page=c...
]
Mathieu Gervais commented on HHH-1829:
--------------------------------------
Hi Steve.
Thanks for looking into this issue.
1) I'm from the same company has Robert Field who recently commented. In case that
helps, I've ran and API diff (using CLIRR) on the patched (HHH-1829-mwinkels.patch) vs
unpatched 3.2.5.ga. Here are the results:
ERROR: 7004: org.hibernate.hql.ast.exec.AbstractStatementExecutor: In method
'protected java.lang.String
generateIdSubselect(org.hibernate.persister.entity.Queryable)' the number of arguments
has changed
INFO: 7011: org.hibernate.mapping.DependantValue: Method 'public void
createForeignKeyOfEntity(java.lang.String)' has been added
INFO: 7011: org.hibernate.mapping.DependantValue: Method 'public java.util.Iterator
getReferencedColumns()' has been added
INFO: 7011: org.hibernate.mapping.DependantValue: Method 'public java.lang.String
getReferencedPropertyName()' has been added
INFO: 7011: org.hibernate.mapping.DependantValue: Method 'public void
setReferencedPropertyName(java.lang.String)' has been added
ERROR: 7006: org.hibernate.mapping.Join: Return type of method 'public
org.hibernate.mapping.KeyValue getKey()' has been changed to
org.hibernate.mapping.DependantValue
ERROR: 7005: org.hibernate.mapping.Join: Parameter 1 of 'public void
setKey(org.hibernate.mapping.KeyValue)' has changed its type to
org.hibernate.mapping.DependantValue
INFO: 7011: org.hibernate.persister.entity.AbstractEntityPersister: Method 'public
void addIdentifierColumns(java.lang.String, org.hibernate.sql.SelectFragment)' has
been added
ERROR: 7004: org.hibernate.persister.entity.AbstractEntityPersister: In method 'public
void delete(java.io.Serializable, java.lang.Object, java.lang.Object,
org.hibernate.engine.SessionImplementor)' the number of arguments has changed
INFO: 7011: org.hibernate.persister.entity.AbstractEntityPersister: Method 'public
java.lang.String[] getIdentifierColumnNames(int)' has been added
INFO: 7011: org.hibernate.persister.entity.AbstractEntityPersister: Method 'protected
java.io.Serializable getIdentifierForJoin(int, java.io.Serializable,
java.lang.Object[])' has been added
INFO: 7011: org.hibernate.persister.entity.AbstractEntityPersister: Method 'public
org.hibernate.type.Type getIdentifierType(int)' has been added
INFO: 7011: org.hibernate.persister.entity.AbstractEntityPersister: Method 'protected
java.lang.String[] getJoinColumnNames(int)' has been added
ERROR: 7004: org.hibernate.persister.entity.EntityPersister: In method 'public void
delete(java.io.Serializable, java.lang.Object, java.lang.Object,
org.hibernate.engine.SessionImplementor)' the number of arguments has changed
ERROR: 7012: org.hibernate.persister.entity.Loadable: Method 'public
java.lang.String[] getIdentifierColumnNames(int)' has been added to an interface
ERROR: 7012: org.hibernate.persister.entity.Queryable: Method 'public void
addIdentifierColumns(java.lang.String, org.hibernate.sql.SelectFragment)' has been
added to an interface
ERROR: 7004: org.hibernate.persister.entity.Queryable: In method 'public
java.lang.String[] getIdentifierColumnNames()' the number of arguments has changed
INFO: 7011: org.hibernate.persister.entity.SingleTableEntityPersister: Method 'public
void addIdentifierColumns(java.lang.String, org.hibernate.sql.SelectFragment)' has
been added
INFO: 7011: org.hibernate.persister.entity.SingleTableEntityPersister: Method 'public
java.lang.String[] getIdentifierColumnNames(int)' has been added
INFO: 7011: org.hibernate.persister.entity.SingleTableEntityPersister: Method
'protected java.io.Serializable getIdentifierForJoin(int, java.io.Serializable,
java.lang.Object[])' has been added
INFO: 7011: org.hibernate.persister.entity.SingleTableEntityPersister: Method 'public
org.hibernate.type.Type getIdentifierType(int)' has been added
INFO: 7011: org.hibernate.persister.entity.SingleTableEntityPersister: Method
'protected java.lang.String[] getJoinColumnNames(int)' has been added
2)
The issue is that I really just have no idea about the state of the
attached patches. Which are pertinent? Which are valid?
Here is my understanding of the current state, from comments on this Jira and the
attachments history @
http://opensource.atlassian.com/projects/hibernate/secure/ManageAttachmen...
:
-In Nov/06 Andrew Seales posted an initial patch with no tests.
-Subsequently, Maarten Winkels posted tests commenting "I think they show very basic
cases where the functionality is needed.".
-Following the test cases submitted by Maarten, Andrew noted issues with his patch, and
said he would post a fixed one, which he didn't do (Andrew didn't post anything
else since then)
-In Feb/07, Maarten posted a patch ( HHH-1829-mwinkels.patch ) passing all tests,
including the ones attached to this issue. His comment are @
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1829?focuse...
- We used that patch with success. No one reported issues with that patch on this jira
item.
So in summary, I'd say you should only look at the later patch (
HHH-1829-mwinkels.patch ).
We understand your concerns about applying a patch that doesn't seem polished enough
(Maarten mentioned that "the code is not very clean"). I guess ideally at this
point there would be collaboration between someone with hibernate internals deep expertise
and the author(s) of the patches to iron out any issues and raise the confidence level.
Maybe the first step would be for the patch to be reviewed by someone from the hibernate
team to indicate any issues / concerns with it, and then the community can address those?
Otherwise, can you let us know what we can do to help?
Thanks.
Allow join on any property using property-ref
---------------------------------------------
Key: HHH-1829
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1829
Project: Hibernate Core
Issue Type: New Feature
Components: metamodel
Affects Versions: 3.2.0 cr1, 3.2.0.cr2
Reporter: Maarten Winkels
Assignee: Steve Ebersole
Attachments: AbstractJoinTest.java, HHH-1829-mwinkels.patch, hhh-1829.patch,
JoinNoPropertyRefTest.java, JoinPropertyRefTest.java, Person.hbm.xml, Person.java,
PersonNoPropertyRef.hbm.xml
Currently joining tables for one class (uing the <join...> tag) is only supported
for the id property. The property-ref is allowed on the <key..> tag inside the
<join..> tag, but this is ignored.
--
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