From: Vance K. <va...@us...> - 2006-06-26 06:45:14
|
User: vancek Date: 06/06/25 23:45:12 Modified: andromda-ejb3/src/main/resources/templates/ejb3/crud ManageableServiceRemote.vsl ManageableServiceBase.vsl andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: ignore attributes with @Version modelled in args for create/update accomodate SortedSet as the default collection interface for one-to-many and many-to-many the dao finder method without a query arg uses NamedQuery rather than generate EJBQL fix EJBQL in manageable service findAll - account for collection association end Revision Changes Path 1.3 +4 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceRemote.vsl Index: ManageableServiceRemote.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceRemote.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- ManageableServiceRemote.vsl 17 Feb 2006 02:32:44 -0000 1.2 +++ ManageableServiceRemote.vsl 26 Jun 2006 06:45:12 -0000 1.3 @@ -1,5 +1,8 @@ // license-header java merge-point -/** Autogenerated by AndroMDA (ManageableServiceRemote.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: ManageableServiceRemote.vsl in andromda-ejb3-cartridge. +// #set ($generatedFile = "${manageable.manageableServiceFullPath}.java") #set ($memberList = $manageable.listManageableMembers(true)) #if (!$manageable.identifiers.empty) 1.5 +60 -24 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl Index: ManageableServiceBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- ManageableServiceBase.vsl 24 Apr 2006 02:36:16 -0000 1.4 +++ ManageableServiceBase.vsl 26 Jun 2006 06:45:12 -0000 1.5 @@ -1,5 +1,8 @@ // license-header java merge-point -/* Autogenerated by AndroMDA (ManageableServiceBase.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: ManageableServiceBase.vsl in andromda-ejb3-cartridge. +// #set ($generatedFile = "${manageable.manageableServiceBaseFullPath}.java") #set ($memberList = $manageable.listManageableMembers(true)) #set ($memberListArguments = $manageable.listManageableMembers(false)) @@ -39,9 +42,9 @@ @javax.persistence.PersistenceContext#if ($manageable.defaultPersistenceContextUnitName)(unitName = "${manageable.defaultPersistenceContextUnitName}")#end protected javax.persistence.EntityManager emanager; + #set ($associatedClasses = $manageable.allAssociatedClasses) #if (!$associatedClasses.empty) - // ------------ Private Operations ---------- #**##foreach ($associatedClass in $associatedClasses) @@ -50,7 +53,7 @@ { try { - javax.persistence.Query query = emanager.createQuery("from ${associatedClass.entityName} as entity where entity.${associatedClass.manageableIdentifierWorkaround.name} in (:${associatedClass.manageableIdentifierWorkaround.name})"); + javax.persistence.Query query = emanager.createQuery("select entity from ${associatedClass.entityName} as entity where entity.${associatedClass.manageableIdentifierWorkaround.name} in (:${associatedClass.manageableIdentifierWorkaround.name})"); query.setParameter("${associatedClass.manageableIdentifierWorkaround.name}", java.util.Arrays.asList(ids)); return query.getResultList(); } @@ -62,7 +65,6 @@ #**##end #end - // ------------ CRUD Operations ------------- #if ($manageable.create) @@ -87,15 +89,21 @@ #**##end final ${manageable.fullyQualifiedName} entity = new ${manageable.fullyQualifiedName}(); #**##foreach ($member in $manageable.manageableAttributes) +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## +#* *##if (!$member.version) entity.${member.setterName}($member.name); #**##end +#**##end try { #**##foreach ($member in $manageable.manageableAssociationEnds) #* *##if ($member.many) #* *##set ($memberEntityName = "${member.name}Entities") - final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = ($member.name != null && ${member.name}.length > 0) + final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = + ($member.name != null && ${member.name}.length > 0) ? this.find${member.type.name}ByIds($member.name) : java.util.Collections.EMPTY_LIST; @@ -110,7 +118,11 @@ if ($memberEntityName != null) { +#* *##if ($member.many && !$member.list) + entity.${member.setterName}(${member.getCollectionTypeImplementation($memberEntityName)}); +#* *##else entity.${member.setterName}($memberEntityName); +#* *##end #* *##if ($member.many2Many) #* *##if ($member.otherEnd.navigable) @@ -128,6 +140,7 @@ #* *##end #* *##end } + #**##end emanager.persist(entity); @@ -232,7 +245,6 @@ try { final javax.persistence.Query query = emanager.createQuery(buf.toString()); - #**##foreach ($member in $manageable.manageableAttributes) #* *##if ($member.type.primitive) #* *##if ($member.type.fullyQualifiedName != 'boolean') @@ -312,7 +324,19 @@ { try { - javax.persistence.Query query = emanager.createQuery("from ${manageable.entityName} as entity"); +#set ($findAllQuery = "select entity from ${manageable.entityName} as entity") +#foreach ($member in $manageable.manageableAssociationEnds) +## +## add left join fetch to query to retrieve many side of association ends +## this is only required if the ends are not initialised further down +## +#**##if ($member.type.displayAttributeWorkaround.name == $member.type.manageableIdentifierWorkaround.name) +#* *##if ($member.many) +#* *##set ($findAllQuery = "${findAllQuery} left join fetch entity.${member.name}") +#* *##end +#**##end +#end + javax.persistence.Query query = emanager.createQuery("${findAllQuery}"); #if ($manageable.maximumListSize > 0) query.setMaxResults($manageable.maximumListSize); #end @@ -324,6 +348,8 @@ public Object transform(final Object object) { ${manageable.fullyQualifiedEntityName} result = (${manageable.fullyQualifiedEntityName})object; + if (result.${member.getterName}() != null) + { #* *##if ($member.many) java.util.Collection<${member.type.displayAttributeWorkaround.type.fullyQualifiedName}> $member.labelName = java.util.Collections.synchronizedCollection(new java.util.ArrayList<${member.type.displayAttributeWorkaround.type.fullyQualifiedName}>()); for (final java.util.Iterator<${member.type.fullyQualifiedEntityName}> iterator = result.${member.getterName}().iterator(); iterator.hasNext();) @@ -338,6 +364,7 @@ #* *##else result.${member.setterName}#if ($member.many)Labels#else#**#Label#end(result.${member.getterName}().${member.type.displayAttributeWorkaround.getterName}()); #* *##end + } return result; } }); @@ -437,7 +464,11 @@ #**##end final $manageable.fullyQualifiedName entity = (${manageable.fullyQualifiedName})emanager.find(${manageable.fullyQualifiedName}.class, #if ($identifier.type.primitive)new ${identifier.type.wrapperName}($identifier.name)#else${identifier.name}#end); #**##foreach ($member in $manageable.manageableAttributes) -#* *##if (!$member.identifier)## the identifier is already present since we loaded the entity +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## The identifier is already present since we loaded the entity +## +#* *##if (!$member.identifier && !$member.version) entity.${member.setterName}(${member.name}); #* *##end #**##end @@ -447,7 +478,8 @@ #**##foreach ($member in $manageable.manageableAssociationEnds) #* *##if ($member.many) #* *##set ($memberEntityName = "${member.name}Entities") - final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = ($member.name != null && ${member.name}.length > 0) + final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = + ($member.name != null && ${member.name}.length > 0) ? this.find${member.type.name}ByIds($member.name) : java.util.Collections.EMPTY_LIST; @@ -462,7 +494,11 @@ if ($memberEntityName != null) { +#* *##if ($member.many && !$member.list) + entity.${member.setterName}(${member.getCollectionTypeImplementation($memberEntityName)}); +#* *##else entity.${member.setterName}($memberEntityName); +#* *##end #* *##if ($member.many2Many) #* *##if ($member.otherEnd.navigable) // set the other ends of the many2many association too 1.8 +43 -46 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- DaoBase.vsl 29 May 2006 01:40:14 -0000 1.7 +++ DaoBase.vsl 26 Jun 2006 06:45:12 -0000 1.8 @@ -265,16 +265,21 @@ { $entity.fullyQualifiedEntityName entity = new ${entity.fullyQualifiedEntityName}(); #* *##foreach ($attribute in $attributes) +#* *##if (!$attribute.version) +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## entity.${attribute.setterName}($attribute.name); #* *##end +#* *##end return this.create(transform, entity); } #* *##end -#* *##set ($requiredProperties = $entity.getRequiredProperties(true,false)) -#* *##if (!$requiredProperties.empty && $entity.getRequiredAttributes(true,false).size() != $requiredProperties.size()) +#* *##set ($requiredProperties = $entity.getRequiredProperties(true,$entity.usingAssignedIdentifier)) +#* *##if (!$requiredProperties.empty && $entity.getRequiredAttributes(true,$entity.usingAssignedIdentifier).size() != $requiredProperties.size()) /** - * @see ${entity.fullyQualifiedDaoName}#create(${entity.getRequiredPropertyTypeList(true, false)}) + * @see ${entity.fullyQualifiedDaoName}#create(${entity.getRequiredPropertyTypeList(true, $entity.usingAssignedIdentifier)}) */ public $rootEntityType create( #* *##foreach($property in $requiredProperties) @@ -283,11 +288,11 @@ #* *##end { - return ($rootEntityType)this.create($entity.daoNoTransformationConstantName, ${entity.getRequiredPropertyNameList(true,false)}); + return ($rootEntityType)this.create($entity.daoNoTransformationConstantName, ${entity.getRequiredPropertyNameList(true,$entity.usingAssignedIdentifier)}); } /** - * @see ${entity.fullyQualifiedDaoName}#create(int, ${entity.getRequiredPropertyTypeList(true, false)}) + * @see ${entity.fullyQualifiedDaoName}#create(int, ${entity.getRequiredPropertyTypeList(true, $entity.usingAssignedIdentifier)}) */ public Object create( final int transform, @@ -493,7 +498,6 @@ throws ${entity.fullyQualifiedDaoDefaultExceptionName} #**##end { -#**##if ($finder.namedQuery) try { javax.persistence.Query queryObject = emanager.createNamedQuery("${entity.name}.${finder.name}"); @@ -554,13 +558,6 @@ { throw new ${entity.fullyQualifiedDaoDefaultExceptionName}(ex); } -#**##else -#* *##if ($finder.returnTypePresent) - return this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); -#* *##else - this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); -#* *##end -#**##end } /** |
From: Vance K. <va...@us...> - 2007-01-23 01:24:12
|
User: vancek Date: 07/01/22 17:24:13 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: inject org.hibernate.Session into DAO base if hibernateExtensionEnabled is true - i.e. use in search criteria Revision Changes Path 1.11 +10 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.10 retrieving revision 1.11 diff -u -w -r1.10 -r1.11 --- DaoBase.vsl 17 Jan 2007 00:50:56 -0000 1.10 +++ DaoBase.vsl 23 Jan 2007 01:24:13 -0000 1.11 @@ -1,3 +1,4 @@ +#parse("templates/ejb3/Globals.vm") // license-header java merge-point // // Attention: Generated code! Do not modify by hand! @@ -59,6 +60,15 @@ protected javax.persistence.EntityManager emanager; +#if ($hibernateExtensionEnabled) + /** + * Injext Hibernate Session + */ + @javax.persistence.PersistenceContext#if ($entity.defaultPersistenceContextUnitName)(unitName = "${entity.defaultPersistenceContextUnitName}")#end + + protected org.hibernate.Session hibernateSession; + +#end #foreach($entityRef in $entity.entityReferences) private $entityRef.targetElement.fullyQualifiedDaoName $entityRef.daoName; |
From: Vance K. <va...@us...> - 2007-12-04 14:09:38
|
User: vancek Date: 07/12/04 06:09:42 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: ejb-71 - fixed getter calls in transformer of base daos when an entity has a composite pk Revision Changes Path 1.31 +4 -0 cartridges/andromda-ejb3/src/site/changes.xml Index: changes.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v retrieving revision 1.30 retrieving revision 1.31 diff -u -w -r1.30 -r1.31 --- changes.xml 30 Nov 2007 12:14:31 -0000 1.30 +++ changes.xml 4 Dec 2007 14:09:42 -0000 1.31 @@ -545,6 +545,10 @@ patched; such that we still require to model the Entity stereotype as well as the MappedSuperclass stereotype on all mapped superclasses. </action> + <action dev="vancek" due-to="luca.dallolio" type="fix"> + JIRA EJB-71 - When modeling a ValueObject based on an entity that has a composite PK, the transformer to + the VO does not call the getters on the embeddable class, which throws an exception during compilation. + </action> </release> </body> </document> \ No newline at end of file 1.13 +5 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- DaoBase.vsl 24 Jan 2007 04:37:55 -0000 1.12 +++ DaoBase.vsl 4 Dec 2007 14:09:42 -0000 1.13 @@ -861,7 +861,11 @@ #* *##foreach ($entityProperty in $entityProperties) #* *##if ($property.name.equals($entityProperty.name)) #* *##set ($entityPropertyGetterValue = false) +#* *##if ($entity.compositePrimaryKeyPresent) +#* *##set ($entityPropertyGetterValue = $converter.typeConvert($entityProperty.type.fullyQualifiedName, "source.getPk().${entityProperty.getterName}()", $property.type.fullyQualifiedName)) +#* *##else #* *##set ($entityPropertyGetterValue = $converter.typeConvert($entityProperty.type.fullyQualifiedName, "source.${entityProperty.getterName}()", $property.type.fullyQualifiedName)) +#* *##end #* *##if ($entityPropertyGetterValue) target.${property.setterName}($entityPropertyGetterValue); #* *##else |