[
http://jira.andromda.org/browse/HIB-165?page=comments#action_13990 ]
Jean-François St-Germain commented on HIB-165:
----------------------------------------------
@andromda.persistence.column.uniqueGroup tag is ignored when two entities are associated by aggregation.
> 'patch' for multiple unique keys
> --------------------------------
>
> Key: HIB-165
> URL:
http://jira.andromda.org/browse/HIB-165> Project: Hibernate Cartridge
> Type: New Feature
> Versions: 3.1
> Reporter: Darius Schier
> Assignee: Carlos Cuenca
> Fix For: 3.2-RC1
>
> I've added a 'patch' how to teach Hibernate multipele unique keys. Maybe you would like to integrate it into your cvs? It is based on 3.1 final.
> I've added a new tag called @andromda.persistence.column.uniqueGroup. This one will be mapped directly to hibernate's unique-key property. Attached you find the version for hibernate3, hib2 should be exactly the same.
> Regards
> Darius
> *********************
> cartridges/andromda-hibernate/src/templates/hibernate3/hibernate.hbm.xml.vm
> for the ordinary column, i've added
> #if($attribute.columnUniqueGroup) unique-key="$attribute.columnUniqueGroup"#end
> *********************
> metafacades/uml/common/src/java/org/andromda/metafacades/uml/UMLProfile.java
> metafacades/uml/common/src/META-INF/andromda/profile.xml
> added the new tag:
> /**
> * Represents a name that groups columns into one unique key.
> */
> public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_UNIQUE_GROUP = profile.get("PERSISTENCE_COLUMN_UNIQUE_GROUP");
> <element name="PERSISTENCE_COLUMN_UNIQUE_GROUP">
> <documentation></documentation>
> <value>@andromda.persistence.column.uniqueGroup</value>
> </element>
> *********************
> Added the tag within andromda's metamodels (just do it with mc). It's a standard String tag (comparable to columnIndex):
> metafacades/uml/common/src/uml/UMLMetafacadeModel.xml.zip
> profiles/uml-1.4/persistence/src/main/uml/andromda-profile-persistence.xml.zip
> *********************
> The handler is straight ahead:
> metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/EntityAttributeLogicImpl.java
> /**
> * @see org.andromda.metafacades.uml.EntityAttribute#getColumnUniqueGroup()
> */
> protected java.lang.String handleGetColumnUniqueGroup()
> {
> final String group = (String)this.findTaggedValue(UMLProfile.TAGGEDVALUE_PERSISTENCE_COLUMN_UNIQUE_GROUP);
> return group != null ? StringUtils.trimToEmpty(group) : null;
> }
> *********************
> I am not sure, if the following is ok: I thought the unique="true" has to be set to false if the attribute is part of a composite unique
> /**
> * @see org.andromda.metafacades.uml.EntityAttribute#isUnique()
> */
> protected boolean handleIsUnique()
> {
> if( StringUtils.isBlank(this.handleGetColumnIndex())) {
> return this.hasStereotype(UMLProfile.STEREOTYPE_UNIQUE);
> }
> return false;
> }
--
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-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV