[ http://jira.andromda.org/browse/HIB-196?page=comments#action_15880 ]
Walter Itamar MourĂ£o commented on HIB-196: ------------------------------------------ Thanks, I just had the same problem and the patch is working fine. If you have suggestions about a better way to correct the cartridge, please let me know. > 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 ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com