[ http://jira.andromda.org/browse/HIB-196?page=all ]
fernando blanch updated HIB-196:
--------------------------------
Attachment: hibernate.hbm.xml.vm
> one-to-many with a column name which is the same name as a identifier column
> name no generate insert="false" update="false"
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: HIB-196
> URL: http://jira.andromda.org/browse/HIB-196
> Project: Hibernate Cartridge
> Type: Bug
> Reporter: David Valdeita
> Assignee: Carlos Cuenca
> Attachments: hibernate.hbm.xml.vm
>
> I need to map a legacy schema and i have composite keys with column names
> which attributes are in one-to-many association... see hibernate composite
> key example in the reference guide...
> in this situation the insert="false" update="false" is needed since the colum
> name is already defined in the primary key. In andromda the entity asociated
> is always null if this insert="false" update="false" are not setted.
> meantime im working with this ugly patch...
> --- hibernate.hbm.xml.vm.old 2006-09-30 02:31:22.000000000 +0200
> +++ hibernate.hbm.xml.vm.new 2006-10-10 12:49:14.000000000 +0200
> @@ -80,7 +80,23 @@
> ${indent} <one-to-many
> class="$otherEnd.type.fullyQualifiedEntityImplementationName"/>
> ${indent}</$otherEnd.collectionType>
> #elseif ($sourceEnd.many2One && !$sourceEnd.identifiersPresent)
> -${indent}<many-to-one name="$otherEnd.name"
> class="$otherEnd.type.fullyQualifiedEntityImplementationName"#if
> ($otherEnd.hibernateCascade) cascade="$otherEnd.hibernateCascade"#end
> foreign-key="$otherEnd.foreignKeyConstraintName"#if($otherEnd.columnIndex)
> index="$otherEnd.columnIndex"#end#if($otherEnd.lazy) lazy="proxy"
> fetch="select"#else lazy="false" fetch="$otherEnd.outerJoin"#end#if
> ($otherEnd.xmlTagName) node="$otherEnd.xmlTagName"#end#if
> ($sourceEnd.embedXML) embed-xml="$sourceEnd.embedXML"#end#if
> ($sourceEnd.list) insert="false" update="false"
> not-null="$otherEnd.required"#end>
> +#set($sameColumnName="false")
> +#if (!$otherEnd.type.compositeIdentifier)
> +#foreach ($attribute in $entity.attributes)
> +#if ($attribute.columnName == $otherEnd.columnName)
> +#set($sameColumnName="true")
> +#end
> +#end
> +#else
> +#foreach ($identifier in ${sourceEnd.otherEnd.type.identifiers})
> +#foreach ($attribute in $entity.attributes)
> +#if($attribute.columnName == $identifier.columnName)
> +#set($sameColumnName="true")
> +#end
> +#end
> +#end
> +#end
> +${indent}<many-to-one name="$otherEnd.name"
> class="$otherEnd.type.fullyQualifiedEntityImplementationName"#if
> ($otherEnd.hibernateCascade) cascade="$otherEnd.hibernateCascade"#end
> foreign-key="$otherEnd.foreignKeyConstraintName"#if($otherEnd.columnIndex)
> index="$otherEnd.columnIndex"#end#if($otherEnd.lazy) lazy="proxy"
> fetch="select"#else lazy="false" fetch="$otherEnd.outerJoin"#end#if
> ($otherEnd.xmlTagName) node="$otherEnd.xmlTagName"#end#if
> ($sourceEnd.embedXML) embed-xml="$sourceEnd.embedXML"#end#if ($sourceEnd.list
> || $sameColumnName =="true") insert="false" update="false"
> not-null="$otherEnd.required"#end>
> #if (!$otherEnd.type.compositeIdentifier)
> ${indent} <column name="$otherEnd.columnName"
> not-null="$otherEnd.required" sql-type="$otherEnd.sqlType"/>
> #else
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.andromda.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
------------------------------------------------------------------------------