/** * Clones this including cost assignments and order position (without id's). * * @return */ public AbstractRechnungsPositionDO newClone() { final AbstractRechnungsPositionDO rechnungsPosition = newInstance(); rechnungsPosition.copyValuesFrom(this, "id", "kostZuweisungen"); if (this.getKostZuweisungen() != null) { for (final KostZuweisungDO origKostZuweisung : this.getKostZuweisungen()) { final KostZuweisungDO kostZuweisung = origKostZuweisung.newClone(); rechnungsPosition.addKostZuweisung(kostZuweisung); } } return rechnungsPosition; }