public void setCurrencies(Integer entityId, CurrencyDTO[] currencies) throws NamingException, ParseException { EntityBL entity = new EntityBL(entityId); // start by wiping out the existing data for this entity entity.getEntity().getCurrencies().clear(); for (CurrencyExchangeDTO exchange : exchangeDas.findByEntity(entityId)) { exchangeDas.delete(exchange); } for (CurrencyDTO currency : currencies) { if (currency.getInUse()) { set(currency.getId()); entity.getEntity().getCurrencies().add(new CurrencyDAS().find(this.currency.getId())); if (currency.getRate() != null) { CurrencyExchangeDTO exchange = setOrUpdateExchangeRate(currency.getRateAsDecimal(), entityId, new Date()); exchangeDas.save(exchange); } } } invalidateCache(); ; }