From: Vance K. <va...@us...> - 2006-04-26 15:10:53
|
User: vancek Date: 06/04/26 08:10:52 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: swap normal EJBQL query definitions defined at runtime for named queries defined during deployment in loadAll and finder methods. finder methods without a query paramter use named queries if defined. fix query object enumeration type, firstResult, maxResults. set cacheRegion query hint if caching enabled. Revision Changes Path 1.2 +100 -33 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.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- DaoBase.vsl 24 Apr 2006 02:21:43 -0000 1.1 +++ DaoBase.vsl 26 Apr 2006 15:10:51 -0000 1.2 @@ -27,7 +27,7 @@ * objects of type <code>$entity.fullyQualifiedEntityName</code>. * </p> * - * @see $entity.fullyQualifiedEntityName + * @see $entity.fullyQualifiedDaoName */ @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED) @javax.ejb.Local({${entity.fullyQualifiedDaoName}.class}) @@ -130,7 +130,11 @@ { try { +#if ($entity.genericFinders) + javax.persistence.Query query = emanager.createNamedQuery("${entity.name}.findAll"); +#else javax.persistence.Query query = emanager.createQuery("from ${entity.entityName} as entity"); +#end java.util.List<${entity.fullyQualifiedEntityName}> results = query.getResultList(); this.transformEntities(transform, results); return results; @@ -463,7 +467,66 @@ throws ${entity.fullyQualifiedDaoDefaultExceptionName} #**##end { +#**##if ($finder.namedQuery) + try + { + javax.persistence.Query queryObject = emanager.createNamedQuery("${entity.name}.${finder.name}"); +#* *##foreach($argument in $finder.arguments) +#* *##set ($count = $velocityCount - 1) +#* *##set ($argumentValue = $argument.name) +#* *##if ($argument.firstResult) + queryObject.setFirstResult(${argument.name}); +#* *##elseif ($argument.maxResults) + queryObject.setMaxResults(${argument.name}); +#* *##else +#* *##if($argument.type.primitive) +#* *##set ($argumentValue = "new ${argument.type.wrapperName}($argument.name)") +#* *##else +#* *##set ($argumentValue = "${argument.name}") +#* *##if ($argument.enumerationTypeOrdinal) +#* *##set ($argumentValue = "${argumentValue}.ordinal()") +#* *##elseif ($argument.enumerationTypeString) +#* *##set ($argumentValue = "${argumentValue}.name()") +#* *##end +#* *##end +#* *##if ($argument.temporalType) +#* *##set ($argumentValue = "${argumentValue}, javax.persistence.TemporalType.${argument.temporalType}") +#* *##end +#* *##set ($setParameterOperation = "setParameter") +#* *##if ($argument.type.collectionType || $argument.type.arrayType) +#* *##set ($setParameterOperation = "${setParameterOperation}List") +#* *##end +#* *##if ($finder.useNamedParameters) + queryObject.${setParameterOperation}("$argument.name", $argumentValue); +#* *##else + queryObject.${setParameterOperation}($count, $argumentValue); +#* *##end +#* *##end +#* *##end +#* *##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) + queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); +#* *##end +#* *##if ($finder.returnType.setType) + java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); + transformEntities(transform, results); + return results; +#* *##elseif ($finder.returnType.collectionType) + java.util.List results = queryObject.getResultList(); + transformEntities(transform, results); + return results; +#* *##else + $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + result = transformEntity(transform, ($entity.fullyQualifiedName)result); + return result; +#* *##end + } + catch (Exception ex) + { + throw new ${entity.fullyQualifiedDaoDefaultExceptionName}(ex); + } +#**##else return this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); +#**##end } /** @@ -482,10 +545,23 @@ #**##foreach($argument in $finder.arguments) #* *##set ($count = $velocityCount - 1) #* *##set ($argumentValue = $argument.name) +#* *##if ($argument.firstResult) + queryObject.setFirstResult(${argument.name}); +#* *##elseif ($argument.maxResults) + queryObject.setMaxResults(${argument.name}); +#* *##else #* *##if($argument.type.primitive) #* *##set ($argumentValue = "new ${argument.type.wrapperName}($argument.name)") -#* *##elseif ($argument.type.enumeration) -#* *##set ($argumentValue = "${argument.name}.getValue()") +#* *##else +#* *##set ($argumentValue = "${argument.name}") +#* *##if ($argument.enumerationTypeOrdinal) +#* *##set ($argumentValue = "${argumentValue}.ordinal()") +#* *##elseif ($argument.enumerationTypeString) +#* *##set ($argumentValue = "${argumentValue}.name()") +#* *##end +#* *##end +#* *##if ($argument.temporalType) +#* *##set ($argumentValue = "${argumentValue}, javax.persistence.TemporalType.${argument.temporalType}") #* *##end #* *##set ($setParameterOperation = "setParameter") #* *##if ($argument.type.collectionType || $argument.type.arrayType) @@ -497,31 +573,22 @@ queryObject.${setParameterOperation}($count, $argumentValue); #* *##end #**##end -#**##if ($finder.returnType.setType || !$finder.returnType.collectionType) +#**##end +#**##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) + queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); +#**##end +#**##if ($finder.returnType.setType) java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); -#**##else + transformEntities(transform, results); + return results; +#**##elseif ($finder.returnType.collectionType) java.util.List results = queryObject.getResultList(); -#**##end -#**##if (!$finder.returnType.collectionType) - Object result = null; - if (results != null) - { - if (results.size() > 1) - { - throw new ${entity.fullyQualifiedDaoDefaultExceptionName}( - "More than one instance of '${finder.returnType.fullyQualifiedName}" - + "' was found when executing query --> '" + queryString + "'"); - } - else if (results.size() == 1) - { - result = ($entity.fullyQualifiedName)results.iterator().next(); - } - } - result = transformEntity(transform, ($entity.fullyQualifiedName)result); - return result; -#**##else transformEntities(transform, results); return results; +#**##else + $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + result = transformEntity(transform, ($entity.fullyQualifiedName)result); + return result; #**##end } catch (Exception ex) |
From: Vance K. <va...@us...> - 2006-05-02 01:57:49
|
User: vancek Date: 06/05/01 18:57:47 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: if security settings are enabled either specify allowed roles or permit all roles at the class level Revision Changes Path 1.4 +7 -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.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- DaoBase.vsl 30 Apr 2006 01:47:44 -0000 1.3 +++ DaoBase.vsl 2 May 2006 01:57:47 -0000 1.4 @@ -31,6 +31,13 @@ */ @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED) @javax.ejb.Local({${entity.fullyQualifiedDaoName}.class}) +#if ($entity.securityEnabled) +#**##if ($stringUtils.isBlank(${entity.rolesAllowed})) +...@ja...rmitAll +#**##else +...@ja...lesAllowed({${entity.rolesAllowed}}) +#**##end +#end public abstract class $entity.daoBaseName #if ($daoInheritance) extends $entity.generalization.fullyQualifiedDaoImplementationName |
From: Vance K. <va...@us...> - 2006-05-04 02:44:55
|
User: vancek Date: 06/05/03 19:44:53 Modified: andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: added composite PK support to load and remove methods. support for finder methods to execute queries without returning object(s) ie delete and updates. Revision Changes Path 1.5 +65 -37 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.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- DaoBase.vsl 2 May 2006 01:57:47 -0000 1.4 +++ DaoBase.vsl 4 May 2006 02:44:53 -0000 1.5 @@ -79,27 +79,32 @@ } #end -#set ($identifier = $entity.identifiers.iterator().next()) +#if (!$entity.compositePrimaryKeyPresent) +#**##set ($identifier = $entity.identifiers.iterator().next()) +#end #set ($argumentName = $stringUtils.uncapitalize($entity.name)) /** - * @see ${entity.fullyQualifiedDaoName}#load(int, $identifier.type.fullyQualifiedName) + * @see ${entity.fullyQualifiedDaoName}#load(int,#foreach($identifier in $entity.identifers) $identifier.type.fullyQualifiedName#if ($velocityCount != $entity.identifiers.size()),#end#end) */ - public Object load(final int transform, final $identifier.type.fullyQualifiedName $identifier.name) + public Object load(final int transform,#foreach($identifier in $entity.identifiers) final $identifier.type.fullyQualifiedName $identifier.name#if ($velocityCount != $entity.identifiers.size()),#end#end) throws ${entity.fullyQualifiedDaoDefaultExceptionName} { -#set ($argument = $identifier.name) -#if($identifier.type.primitive) -#**##set ($argument = "new ${identifier.type.wrapperName}(${identifier.name})") -#else - if ($argument == null) +#foreach ($identifier in $entity.identifiers) +#**##if(!$identifier.type.primitive) + if ($identifier.name == null) { throw new IllegalArgumentException( - "${entity.name}.load - '$argument' can not be null"); + "${entity.name}.load - '$identifier.name' can not be null"); } +#**##end #end try { - final Object entity = (${entity.fullyQualifiedEntityName})emanager.find(${entity.fullyQualifiedEntityName}.class, $argument); +#if ($entity.compositePrimaryKeyPresent) + final Object entity = (${entity.fullyQualifiedEntityName})emanager.find(${entity.fullyQualifiedEntityName}.class, new ${entity.fullyQualifiedEntityCompositePrimaryKeyName}(#foreach ($identifier in $entity.identifiers)#if($identifier.type.primitive) new ${identifier.type.wrapperName}(${identifier.name})#else $identifier.name#end#if ($velocityCount != $entity.identifiers.size()),#end#end)); +#else + final Object entity = (${entity.fullyQualifiedEntityName})emanager.find(${entity.fullyQualifiedEntityName}.class, $identifier.name); +#end return transformEntity(transform, ($entity.fullyQualifiedName)entity); } catch (Exception ex) @@ -109,12 +114,12 @@ } /** - * @see ${entity.fullyQualifiedDaoName}#load($identifier.type.fullyQualifiedName) + * @see ${entity.fullyQualifiedDaoName}#load(#foreach($identifier in $entity.identifers) $identifier.type.fullyQualifiedName#if ($velocityCount != $entity.identifiers.size()),#end#end) */ - public $rootEntityType load($identifier.type.fullyQualifiedName $identifier.name) + public $rootEntityType load(#foreach($identifier in $entity.identifiers) final $identifier.type.fullyQualifiedName $identifier.name#if ($velocityCount != $entity.identifiers.size()),#end#end) throws ${entity.fullyQualifiedDaoDefaultExceptionName} { - return ($entity.fullyQualifiedEntityName)this.load($entity.daoNoTransformationConstantName, $identifier.name); + return ($entity.fullyQualifiedEntityName)this.load($entity.daoNoTransformationConstantName,#foreach($identifier in $entity.identifiers) $identifier.name#if ($velocityCount != $entity.identifiers.size()),#end#end); } /** @@ -368,22 +373,25 @@ } /** - * @see ${entity.fullyQualifiedDaoName}#remove($identifier.type.fullyQualifiedName) + * @see ${entity.fullyQualifiedDaoName}#remove(#foreach ($identifier in $entity.identifiers)$identifier.type.fullyQualifiedName#if ($velocityCount != $entity.identifiers.size()), #end#end) */ - public void remove($identifier.type.fullyQualifiedName $identifier.name) + public void remove(#foreach ($identifier in $entity.identifiers)$identifier.type.fullyQualifiedName $identifier.name#if ($velocityCount != $entity.identifiers.size()), #end#end) throws ${entity.fullyQualifiedDaoDefaultExceptionName} { -#set ($argument = $identifier.name) -#if($identifier.type.primitive) -#**##set ($argument = "new ${identifier.type.wrapperName}(${identifier.name})") -#else - if ($argument == null) +#foreach ($identifier in $entity.identifiers) +#**##if(!$identifier.type.primitive) + if ($identifier.name == null) { throw new IllegalArgumentException( "${entity.name}.remove - '$identifier.name' can not be null"); } +#**##end +#end +#if (!$entity.compositePrimaryKeyPresent) +#**##set ($loadCall = "this.load($identifier.name)") +#else +#**##set ($loadCall = "this.load(#foreach ($identifier in $entity.identifiers)$identifier.name#if ($velocityCount != $entity.identifiers.size()), #end#end)") #end -#set ($loadCall = "this.load($identifier.name)") #if ($entity.generalization) #**##set ($loadCall = "($entity.fullyQualifiedEntityName)${loadCall}") #end @@ -438,10 +446,14 @@ #**##end { #**##set ($finderCall = "this.${finder.name}($entity.daoNoTransformationConstantName#if(!$finder.arguments.empty), ${finder.argumentNames}#end);") +#**##if ($finder.returnTypePresent) #**##if (!$finder.returnType.collectionType) #* *##set ($finderCall = "($returnType)$finderCall") #**##end return $finderCall +#**##else + $finderCall +#**##end } /** @@ -455,10 +467,14 @@ #**##end { #**##set ($finderCall = "this.${finder.name}($entity.daoNoTransformationConstantName, queryString#if(!$finder.arguments.empty), ${finder.argumentNames}#end);") +#**##if ($finder.returnTypePresent) #**##if (!$finder.returnType.collectionType) #* *##set ($finderCall = "($returnType)$finderCall") #**##end return $finderCall +#**##else + $finderCall +#**##end } #**##if (!$finder.returnType.collectionType) @@ -467,7 +483,7 @@ /** * @see ${entity.fullyQualifiedDaoName}#${finder.name}(int#if(!$finder.arguments.empty), ${finder.argumentTypeNames}#end) */ - $finder.visibility $returnType ${finder.name}(final int transform#if(!$finder.arguments.empty), ${finder.getTypedArgumentList('final')}#end) + $finder.visibility#if ($finder.returnTypePresent) $returnType#else void#end ${finder.name}(final int transform#if(!$finder.arguments.empty), ${finder.getTypedArgumentList('final')}#end) #**##if ($finder.exceptionsPresent) throws $finder.exceptionList, ${entity.fullyQualifiedDaoDefaultExceptionName} #**##else @@ -513,6 +529,7 @@ #* *##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); #* *##end +#* *##if ($finder.returnTypePresent) #* *##if ($finder.returnType.setType) java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); transformEntities(transform, results); @@ -522,24 +539,31 @@ transformEntities(transform, results); return results; #* *##else - $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + Object result = queryObject.getSingleResult(); result = transformEntity(transform, ($entity.fullyQualifiedName)result); return result; #* *##end +#* *##else + queryObject.executeUpdate(); +#* *##end } catch (Exception ex) { 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 } /** * @see ${entity.fullyQualifiedDaoName}#${finder.name}(int, java.lang.String#if(!$finder.arguments.empty), ${finder.argumentTypeNames}#end) */ - $finder.visibility $returnType ${finder.name}(final int transform, final java.lang.String queryString#if(!$finder.arguments.empty), ${finder.getTypedArgumentList('final')}#end) + $finder.visibility#if ($finder.returnTypePresent) $returnType#else void#end ${finder.name}(final int transform, final java.lang.String queryString#if(!$finder.arguments.empty), ${finder.getTypedArgumentList('final')}#end) #**##if ($finder.exceptionsPresent) throws ${finder.exceptionList}, ${entity.fullyQualifiedDaoDefaultExceptionName} #**##else @@ -584,6 +608,7 @@ #**##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) queryObject.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_${finder.name}"); #**##end +#**##if ($finder.returnTypePresent) #**##if ($finder.returnType.setType) java.util.Set results = new java.util.LinkedHashSet(queryObject.getResultList()); transformEntities(transform, results); @@ -593,10 +618,13 @@ transformEntities(transform, results); return results; #**##else - $finder.returnType.fullyQualifiedName result = ($finder.returnType.fullyQualifiedName)queryObject.getSingleResult(); + Object result = queryObject.getSingleResult(); result = transformEntity(transform, ($entity.fullyQualifiedName)result); return result; #**##end +#**##else + queryObject.executeUpdate(); +#**##end } catch (Exception ex) { |
From: Vance K. <va...@us...> - 2006-05-15 12:43:11
|
User: vancek Date: 06/05/15 05:43:11 Modified: andromda-ejb3/src/main/resources/templates/ejb3/config/jboss ejb3-entity-cache-service.xml.vsl andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: add support for query cache for findAll Revision Changes Path 1.4 +10 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/jboss/ejb3-entity-cache-service.xml.vsl Index: ejb3-entity-cache-service.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/config/jboss/ejb3-entity-cache-service.xml.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- ejb3-entity-cache-service.xml.vsl 11 Apr 2006 15:51:59 -0000 1.3 +++ ejb3-entity-cache-service.xml.vsl 15 May 2006 12:43:11 -0000 1.4 @@ -96,6 +96,16 @@ #**##end #end #foreach ($entity in $entities) +#**##if ($entity.useQueryCache && !$entity.useDefaultCacheRegion) +#* *##if (!$entity.finderFindAllExists) + + <!-- The ${entity.name} findAll query cache --> + <region name="/${entity.fullyQualifiedNamePath}_findAll"> + <attribute name="maxNodes">1000</attribute> + <attribute name="timeToLiveSeconds">5000</attribute> + </region> +#* *##end +#**##end #**##foreach ($finder in $entity.getQueryOperations(true)) #* *##if ($finder.useQueryCache && !$entity.useDefaultCacheRegion) 1.6 +3 -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.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- DaoBase.vsl 4 May 2006 02:44:53 -0000 1.5 +++ DaoBase.vsl 15 May 2006 12:43:11 -0000 1.6 @@ -147,6 +147,9 @@ #else javax.persistence.Query query = emanager.createQuery("from ${entity.entityName} as entity"); #end +#if ($entity.useQueryCache && !$entity.useDefaultCacheRegion) + query.setHint("org.hibernate.cacheRegion", "/${entity.fullyQualifiedNamePath}_findAll"); +#end java.util.List<${entity.fullyQualifiedEntityName}> results = query.getResultList(); this.transformEntities(transform, results); return results; |