@Override
  public BudgetKeyAdditionalEntity persist(BudgetKeyAdditionalEntity anEntity) {
    List<BudgetKeyAdditionalEntity> others =
        itsBudgetKeyAdditionalDao.findByCriteria(
            Restrictions.eq("budgetKeyAdditionalKey", anEntity.getBudgetKeyAdditionalKey()));
    // Ya existe un dato adicional para dicha clave
    if (others != null && !others.isEmpty()) {
      throw new BaseBusinessException("ppp.additional.exists");
    }

    if (anEntity.getBudgetKeyAdditionalId() == null) {
      anEntity = itsBudgetKeyAdditionalDao.save(anEntity);
    } else {
      anEntity = itsBudgetKeyAdditionalDao.merge(anEntity);
    }
    return anEntity;
  }
 @Override
 public BudgetKeyAdditionalEntity getAdditional(String aBudgetKey) {
   return itsBudgetKeyAdditionalDao.getBudgetKeyAdditional(aBudgetKey);
 }
 @Override
 public void delete(BudgetKeyAdditionalEntity anEntity) {
   itsBudgetKeyAdditionalDao.delete(anEntity);
 }
 @Override
 public BudgetKeyAdditionalEntity getBudgetKeyAdditionalByIdentity(
     BudgetKeyAdditionalDto anAdditionalDto) {
   return itsBudgetKeyAdditionalDao.getBudgetKeyAdditionalByIdentity(anAdditionalDto);
 }
 @Override
 public double getSumByBudgetKey(BudgetKeyAdditionalDto anAdditionalDto) {
   return itsBudgetKeyAdditionalDao.getSumByBudgetKey(anAdditionalDto);
 }
 @Override
 public Collection<BudgetKeyAdditionalEntity> getBudgetKeyAdditionalsByObjectExpenseAndDependency(
     BudgetKeyAdditionalDto anAdditionalDto) {
   return itsBudgetKeyAdditionalDao.getBudgetKeyAdditionalsByObjectExpenseAndDependency(
       anAdditionalDto);
 }