[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-944?page=co...
]
Xavier Brénuchon commented on HHH-944:
--------------------------------------
Hello,
I am also very interested by this functionality.
We develop an application which has very strong need for performance with several tens of
million recordings. Partitioning is a need.
Because all my tables have a column of partitioning, I need to use shared composite key
attribute for all my relations.
So for a <many-to-many>, I use the example of the doc (23.4.3 :)
<class name="User" table="User">
<composite-id>
<key-property name="name"/>
<key-property name="org"/>
</composite-id>
<set name="groups" table="UserGroup">
<key>
<column name="userName"/>
<column name="org"/>
</key>
<many-to-many class="Group">
<column name="groupName"/>
<formula>org</formula>
</many-to-many>
</set>
</class>
For a <many-to-one> I use :
<class name="User" table="User">
<composite-id>
<key-property name="name"/>
<key-property name="org"/>
</composite-id>
<many-to-one name="team">
<formula>org</formula>
<column name="FK_TEAM"/>
</many-to-one>
</class>
The only problem is for <one-to-many> because <formula> is not possible in
<key> :
<class name="User" table="User">
<composite-id>
<key-property name="name"/>
<key-property name="org"/>
</composite-id>
<set name="contrats" cascade="all, delete-orphan">
<key>
<!-- formula is not authorized :( -->
<formula>org</formula>
<column name="FK_USER"/>
</key>
<one-to-many class="Contrat"/>
</set>
</class>
<class name="Contrat" table="CONTRAT">
<composite-id>
<key-property name="name"/>
<key-property name="org"/>
</composite-id>
<!-- ... -->
</class>
It is a limitation which prevents the use of a effective partitioning in data base.
I carried out a test by modifying the source code of hibernate that can function without
many modifications.
Is it possible that Hibernate is enriched by this functionality?
In one-to-many relationship (Set, Map, List), let <key> accept
<formula> as an alternative to <column>.
---------------------------------------------------------------------------------------------------------
Key: HHH-944
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-944
Project: Hibernate3
Type: New Feature
Versions: 3.1 rc3
Reporter: Etienne Laverdiere
As explain in
http://forum.hibernate.org/viewtopic.php?t=947249&highlight=&sid=...
and alternatively in
http://forum.hibernate.org/viewtopic.php?t=947145&highlight=&sid=...,
it would be nice if the <key> inside a SET or any collection (one-to-many
relationship) could accept a <formula> instead of the column:
Example:
<set name="childrens" lazy="true" inverse="true">
<key foreign-key="FinancialTransit">
<formula>ANY SQL</formula>
</key>
<one-to-many class="com.eg.Children" />
</set>
instead of :
<set name="childrens" lazy="true" inverse="true">
<key foreign-key="key1">
<column name="key2" scale="10"
precision="0" not-null="false" unique="true"
/>
</key>
<one-to-many class="com.eg.Children" />
</set>
It would necessitate to patch the class AbstractCollectionPersister and modify the DTD of
hibernate mapping.
Regards,
Etienne
--
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