@Override
 @Transactional
 public void saveOrUpdate(Collection<AbstractEntity> clients) {
   for (AbstractEntity payment : clients) {
     paymentDAO.saveOrUpdate((Payment) payment);
   }
 }
 @Override
 public List<Payment> getPayments(String clientId) {
   if (StringUtils.isEmpty(clientId)) {
     return Collections.emptyList();
   }
   return paymentDAO.getPayments(clientId);
 }
 @Override
 public List<Payment> findByContract(String contractId) {
   if (StringUtils.isEmpty(contractId)) {
     return Collections.emptyList();
   }
   List<Payment> payments = paymentDAO.findByContractId(contractId);
   for (Payment payment : payments) {
     Hibernate.initialize(payment.getContract());
   }
   return payments;
 }
 @Override
 @Transactional()
 public void removeAll() {
   paymentDAO.deleteAll();
 }
 @Override
 @Transactional()
 public void save(Payment payment) {
   paymentDAO.saveOrUpdate(payment);
 }