r1558 - in trunk/wao-business/src/main/java/fr/ifremer/wao: entity service
Author: bleny Date: 2012-03-12 18:03:56 +0100 (Mon, 12 Mar 2012) New Revision: 1558 Url: http://forge.codelutin.com/repositories/revision/wao/1558 Log: Anomalie #959 Mauvais calcul du nombre de strates dans le r?\195?\169f?\195?\169rentiel Added: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionDAOImpl.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java Added: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionDAOImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionDAOImpl.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionDAOImpl.java 2012-03-12 17:03:56 UTC (rev 1558) @@ -0,0 +1,16 @@ +package fr.ifremer.wao.entity; + +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; + +public class TerrestrialDivisionDAOImpl<E extends TerrestrialDivision> extends TerrestrialDivisionDAOAbstract<E> { + + public long countDistinctTerrestrialDivision() throws TopiaException { + TopiaQuery query = createQuery() + .setSelect(TerrestrialDivision.PROPERTY_CODE) + .addDistinct() + .addNotNull(TerrestrialDivision.PROPERTY_CODE); + return countByQuery(query); + } + +} Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2012-03-12 16:48:34 UTC (rev 1557) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2012-03-12 17:03:56 UTC (rev 1558) @@ -836,9 +836,19 @@ if ( ! TopiaEntity.class.isAssignableFrom(entityClass)) { throw new IllegalArgumentException("il faut passer le FQN d'une classe d'entité"); } - TopiaDAO dao = WaoDAOHelper.getDAO(transaction, (Class<? extends TopiaEntity>) entityClass); - long count = dao.count(); + long count; + if (TerrestrialDivision.class.equals(entityClass)) { + // Pour les stratification géographique, on compte le nombre de strate + // (on ne compte pas les unités d'observations, etc qui prennent + // des lignes en base) + TerrestrialDivisionDAO dao = WaoDAOHelper.getTerrestrialDivisionDAO(transaction); + count = dao.countDistinctTerrestrialDivision(); + } else { + TopiaDAO dao = WaoDAOHelper.getDAO(transaction, (Class<? extends TopiaEntity>) entityClass); + count = dao.count(); + } + ReferentialMetaDAO referentialMetaDAO = WaoDAOHelper.getReferentialMetaDAO(transaction); ReferentialMeta referentialMeta = referentialMetaDAO.findByEntityClassFqn(entityClassFqn); if (referentialMeta == null) {
participants (1)
-
bleny@users.forge.codelutin.com