[ http://jira.andromda.org/browse/HIB-165?page=comments#action_12950 ]
Pierre Colot commented on HIB-165: ---------------------------------- I extended with support for unique key, composed key without reference key, composed key with referenced key It is based on 3.2 SNAPSHOT. Here is the diff unified (---new value +++old value) --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\common\src\java\org\andromda\metafacades\uml\UMLProfile.java Wed Jun 14 11:37:48 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\common\src\java\org\andromda\metafacades\uml\UMLProfile.java Tue Apr 18 03:45:34 2006 @@ -175,11 +175,6 @@ public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_LENGTH = profile.get("PERSISTENCE_COLUMN_LENGTH"); /** - * 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"); - - /** * Represents a relational table column index name. */ public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_INDEX = profile.get("PERSISTENCE_COLUMN_INDEX"); --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\common\src\META-INF\andromda\profile.xml Wed Jun 14 11:43:18 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\common\src\META-INF\andromda\profile.xml Tue Apr 18 03:45:30 2006 @@ -195,10 +195,6 @@ <documentation></documentation> <value>@andromda.persistence.column.length</value> </element> - <element name="PERSISTENCE_COLUMN_UNIQUE_GROUP"> - <documentation></documentation> - <value>@andromda.persistence.column.uniqueGroup</value> - </element> <element name="PERSISTENCE_COLUMN_INDEX"> <documentation></documentation> <value>@andromda.persistence.column.index</value> --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\emf\uml2\src\main\java\org\andromda\metafacades\emf\uml2\EntityAssociationEndLogicImpl.java Tue Jun 27 10:28:40 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\emf\uml2\src\main\java\org\andromda\metafacades\emf\uml2\EntityAssociationEndLogicImpl.java Mon May 01 21:02:24 2006 @@ -143,15 +143,6 @@ } /** - * @see org.andromda.metafacades.uml.EntityAssociationEnd#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; - } - - /** * @see org.andromda.metafacades.uml.EntityAssociationEnd#getSqlType() */ protected java.lang.String handleGetSqlType() --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\emf\uml2\src\main\java\org\andromda\metafacades\emf\uml2\EntityAttributeLogicImpl.java Tue Jun 27 10:29:30 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\emf\uml2\src\main\java\org\andromda\metafacades\emf\uml2\EntityAttributeLogicImpl.java Tue Jun 27 10:29:30 2006 @@ -146,11 +146,8 @@ */ protected boolean handleIsUnique() { - if( StringUtils.isBlank(this.handleGetColumnIndex())) { return this.hasStereotype(UMLProfile.STEREOTYPE_UNIQUE); } - return false; - } /** * @see org.andromda.metafacades.uml.EntityAttribute#getColumnIndex() @@ -159,15 +156,6 @@ { final String index = (String)this.findTaggedValue(UMLProfile.TAGGEDVALUE_PERSISTENCE_COLUMN_INDEX); return index != null ? StringUtils.trimToEmpty(index) : null; - } - - /** - * @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; } /** --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\uml14\src\java\org\andromda\metafacades\uml14\EntityAssociationEndLogicImpl.java Tue Jun 27 10:30:12 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\uml14\src\java\org\andromda\metafacades\uml14\EntityAssociationEndLogicImpl.java Sun Mar 12 13:05:50 2006 @@ -135,15 +135,6 @@ } /** - * @see org.andromda.metafacades.uml14.EntityAssociationEndLogic#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; - } - - /** * @see org.andromda.metafacades.uml14.EntityAssociationEndLogic#handleGetSqlType() */ protected String handleGetSqlType() --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\uml14\src\java\org\andromda\metafacades\uml14\EntityAttributeLogicImpl.java Wed Jun 14 14:07:40 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\uml14\src\java\org\andromda\metafacades\uml14\EntityAttributeLogicImpl.java Sun Mar 12 13:05:50 2006 @@ -58,15 +58,6 @@ } /** - * @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; - } - - /** * @see org.andromda.metafacades.uml.EntityAttribute#isIdentifier() */ protected boolean handleIsIdentifier() @@ -79,10 +70,7 @@ */ protected boolean handleIsUnique() { - if( StringUtils.isBlank(this.handleGetColumnIndex())) { return this.hasStereotype(UMLProfile.STEREOTYPE_UNIQUE); - } - return false; } /** --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\uml2\src\main\java\org\andromda\metafacades\uml2\EntityAssociationEndLogicImpl.java Tue Jun 27 10:31:31 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\uml2\src\main\java\org\andromda\metafacades\uml2\EntityAssociationEndLogicImpl.java Sun Mar 12 01:22:44 2006 @@ -61,15 +61,6 @@ } /** - * @see org.andromda.metafacades.uml.EntityAssociationEnd#getColumnUniqueGroup() - */ - protected java.lang.String handleGetColumnUniqueGroup() - { - // TODO: put your implementation here. - return null; - } - - /** * @see org.andromda.metafacades.uml.EntityAssociationEnd#getSqlType() */ protected java.lang.String handleGetSqlType() --- R:\PCOLOT\andromda-src-3.2-SNAPSHOT-20060514\metafacades\uml\uml2\src\main\java\org\andromda\metafacades\uml2\EntityAttributeLogicImpl.java Tue Jun 27 10:31:58 2006 +++ R:\PCOLOT\ref-andromda-src-3.2-SNAPSHOT-20060514\andromda-src-3.2-SNAPSHOT\metafacades\uml\uml2\src\main\java\org\andromda\metafacades\uml2\EntityAttributeLogicImpl.java Sun Mar 12 01:22:44 2006 @@ -96,15 +96,6 @@ return null; } - /** - * @see org.andromda.metafacades.uml.EntityAttribute#getColumnUniqueGroup() - */ - protected java.lang.String handleGetColumnUniqueGroup() - { - // TODO: put your implementation here. - return null; - } - protected boolean handleIsTransient() { // TODO: put your implementation here. Added the tag within andromda's metamodels (just do it with mc). It's a standard String tag (comparable to columnIndex): on Attribute and AssociationEnd metafacades/uml/common/src/uml/UMLMetafacadeModel.xml.zip profiles/uml-1.4/persistence/src/main/uml/andromda-profile-persistence.xml.zip regenerate cartridge src expected result or disble tests full rebuild (clean+install) profiles/uml-1.4/persistence and redeploy under MagicDraw/profile > '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 > > 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 Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642