[ 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


------------------------------------------------------------------------------

Reply via email to