/*
 * JPA entity template
 *
 *
 * Takatuka - Template fuer JPA2 Entitaeten (inklusive Bean Validation)
 *
 * Moeglichkeiten und Einschraenkungen:
 * - Beziehungen werden abgebildet
 * -- es gibt keine 1:1 Beziehungen
 * -- N:M Beziehungen sind immer bidirektional
 * - Vererbung wird nicht unterstuetzt
 * - Support für CustomData
 */
package de.ivu.elect.business.entschaedigung.entity;

@javax.persistence.NamedQueries(
 {



   
      @javax.persistence.NamedQuery(
     name="ENTSCHAEDIGUNGSART.WahlAndKriteriumPersonendatenArt",
     query="SELECT obj FROM Entschaedigungsart obj WHERE obj.wahl = ?1 AND obj.kriteriumPersonendatenArt = ?2",
     hints = {@javax.persistence.QueryHint(name = "org.hibernate.cacheable", value = "true"),
                            @javax.persistence.QueryHint(name = "org.hibernate.flushMode", value = "commit")
             }
   )

        
         ,   @javax.persistence.NamedQuery(
     name="ENTSCHAEDIGUNGSART.Wahl",
     query="SELECT obj FROM Entschaedigungsart obj WHERE obj.wahl = ?1",
     hints = {@javax.persistence.QueryHint(name = "org.hibernate.cacheable", value = "true"),
                            @javax.persistence.QueryHint(name = "org.hibernate.flushMode", value = "commit")
             }
   )

        
         ,   @javax.persistence.NamedQuery(
     name="ENTSCHAEDIGUNGSART.WahlterminAndKriteriumPersonendatenArt",
     query="SELECT obj FROM Entschaedigungsart obj WHERE obj.wahltermin = ?1 AND obj.kriteriumPersonendatenArt = ?2",
     hints = {@javax.persistence.QueryHint(name = "org.hibernate.cacheable", value = "true"),
                            @javax.persistence.QueryHint(name = "org.hibernate.flushMode", value = "commit")
             }
   )

        
         ,   @javax.persistence.NamedQuery(
     name="ENTSCHAEDIGUNGSART.WahlterminDelete",
     query="DELETE FROM Entschaedigungsart obj WHERE obj.wahltermin = ?1",
     hints = {@javax.persistence.QueryHint(name = "org.hibernate.cacheable", value = "false"),
                            @javax.persistence.QueryHint(name = "org.hibernate.flushMode", value = "commit")
             }
   )

        
         ,   @javax.persistence.NamedQuery(
     name="ENTSCHAEDIGUNGSART.Wahltermin",
     query="SELECT obj FROM Entschaedigungsart obj WHERE obj.wahltermin = ?1",
     hints = {@javax.persistence.QueryHint(name = "org.hibernate.cacheable", value = "true"),
                            @javax.persistence.QueryHint(name = "org.hibernate.flushMode", value = "commit")
             }
   )

        
     }
)
@javax.enterprise.inject.Vetoed
@javax.persistence.Entity
@javax.persistence.Table(name = "ENTSCHAEDIGUNGSART")
// @javax.persistence.IdClass(EntschaedigungsartPK.class)
    @javax.persistence.EntityListeners(de.ivu.elect.jee.protokollierung.ProtokollEntityListener.class)
    @javax.persistence.Cacheable

public
 class Entschaedigungsart
extends AbstractEntschaedigungsart
  {

  private static final long serialVersionUID = 0L;


  /**
   * default constructor
   */
  public Entschaedigungsart() {
    super();
  }

    /**
     * @param original
     *
     * @deprecated Sollte nur mit Bedacht genutzt werden, da hier auch die Beziehungen kopiert werden. Deswegen markiert
     *             als Deprecated.
     */
    @Deprecated
    public Entschaedigungsart(Entschaedigungsart original){
      original.copyEntity(this);
    }

  /**
   * PRIMARY KEY
   */
  @javax.persistence.Id
  @javax.persistence.Column(name = "entschaedigungsart_id")
    @javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.TABLE, generator = "Entschaedigungsart")
    @javax.persistence.TableGenerator(name = "Entschaedigungsart", table = "SEQUENCES", pkColumnName = "sequence_name", pkColumnValue = "Entschaedigungsart", valueColumnName = "next_val", allocationSize = 1000, initialValue = 0)
    protected java.lang.Long id;

  @Override
  public java.lang.Long getId() {
    return id;
  }

  public void setId(java.lang.Long id) {
    this.id = id;
  }

  @javax.persistence.Transient
  private transient EntschaedigungsartPK pkCache;

  @Override
  public EntschaedigungsartPK getPk() {
    if (pkCache==null || pkCache.getId() != id ) {
      pkCache = new EntschaedigungsartPK(getId());
    }

    return pkCache;
  }

  public static <E extends Entschaedigungsart> java.util.Map<EntschaedigungsartPK, E> mappeNachPk(java.util.Collection<E> entities){
    java.util.Map<EntschaedigungsartPK, E> result = new java.util.HashMap<>();

    for (E entity : entities) {
      result.put(entity.getPk(), entity);
    }

    return result;
  }

  public static <E extends Entschaedigungsart> java.util.Map<Long, E> mappeNachId(java.util.Collection<E> entities){
    java.util.Map<Long, E> result = new java.util.HashMap<>();

    for (E entity : entities) {
      result.put(entity.getId(), entity);
    }

    return result;
  }



  /**
   * Indikator, ob sich ein Attribut oder eine UNIDIREKTIONALE n:1-Beziehungen geaendert hat
   */
  @javax.persistence.Transient
  protected boolean attributeChanged = false;

  public void setAttributeChanged() {
    attributeChanged = true;
  }

  public boolean isAttributeChanged() {
    return attributeChanged;
  }

  /**
   * Hilfsvariable fuer das Aktualisieren von Beziehungen
   */
  @javax.persistence.Transient
  protected boolean updateRelationship = false;


  public void resetAttributeChanged() {
        hasChangedAnzahlInitial = false;
          hasChangedAnzahlMaximal = false;
          hasChangedAnzahlMinimal = false;
          hasChangedBerechnungsart = false;
          hasChangedBeschreibung = false;
          hasChangedBezeichnung = false;
          hasChangedEinzelbetragInitial = false;
          hasChangedEinzelbetragMaximal = false;
          hasChangedEinzelbetragMinimal = false;
          hasChangedTemplate = false;
          hasChangedKriteriumEinsatzfunktion = false;
          hasChangedKriteriumEinsatzort = false;
          hasChangedKriteriumPersonendatenArt = false;
          hasChangedWaehrungAlsIsoCode = false;
  
      hasChangedWahltermin = false;
        hasChangedWahl = false;
  

        
    attributeChanged = false;
  }


  /**
   * ATTRIBUTE
   */

    
      @javax.persistence.Column(name = "ANZAHL_INITIAL", nullable = EntschaedigungsartConstants.ANZAHL_INITIAL_NULLABLE, precision=EntschaedigungsartConstants.ANZAHL_INITIAL_PRECISION, scale=EntschaedigungsartConstants.ANZAHL_INITIAL_SCALE)
            
  protected java.lang.Long anzahlInitial =  Long.valueOf("1");

  @javax.persistence.Transient
  protected boolean hasChangedAnzahlInitial = false;

  public boolean hasChangedAnzahlInitial(){
    return hasChangedAnzahlInitial;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertAnzahlInitial = false;
     @javax.persistence.Transient
     private transient java.lang.Long wertNachLadenAnzahlInitial;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.ANZAHL_INITIAL
   */
    @Override   public  java.lang.Long getAnzahlInitial() {
        return anzahlInitial;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.ANZAHL_INITIAL
   *
   * @param anzahlInitial
   */
  @Override   public void setAnzahlInitial( java.lang.Long anzahlInitial) {

       resetTkCache();
                  java.lang.Long anzahlInitialInternal = anzahlInitial;
       
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.anzahlInitial
      , anzahlInitialInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedAnzahlInitial |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("anzahlInitial");
      }


             if (!isSeitLadenVeraendertAnzahlInitial) {
          isSeitLadenVeraendertAnzahlInitial = thisAttributChanged;
         if (isSeitLadenVeraendertAnzahlInitial){
           wertNachLadenAnzahlInitial=this.anzahlInitial;
         }
       }
      

       this.anzahlInitial = anzahlInitialInternal;

         }

        
  @javax.persistence.Column(name = "ANZAHL_MAXIMAL", nullable = EntschaedigungsartConstants.ANZAHL_MAXIMAL_NULLABLE, precision=EntschaedigungsartConstants.ANZAHL_MAXIMAL_PRECISION, scale=EntschaedigungsartConstants.ANZAHL_MAXIMAL_SCALE)
            
  protected java.lang.Long anzahlMaximal =  Long.valueOf("1");

  @javax.persistence.Transient
  protected boolean hasChangedAnzahlMaximal = false;

  public boolean hasChangedAnzahlMaximal(){
    return hasChangedAnzahlMaximal;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertAnzahlMaximal = false;
     @javax.persistence.Transient
     private transient java.lang.Long wertNachLadenAnzahlMaximal;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.ANZAHL_MAXIMAL
   */
  @javax.annotation.Nullable   @Override   public  java.lang.Long getAnzahlMaximal() {
        return anzahlMaximal;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.ANZAHL_MAXIMAL
   *
   * @param anzahlMaximal
   */
  @Override   public void setAnzahlMaximal(@javax.annotation.Nullable  java.lang.Long anzahlMaximal) {

       resetTkCache();
                  java.lang.Long anzahlMaximalInternal = anzahlMaximal;
       
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.anzahlMaximal
      , anzahlMaximalInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedAnzahlMaximal |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("anzahlMaximal");
      }


             if (!isSeitLadenVeraendertAnzahlMaximal) {
          isSeitLadenVeraendertAnzahlMaximal = thisAttributChanged;
         if (isSeitLadenVeraendertAnzahlMaximal){
           wertNachLadenAnzahlMaximal=this.anzahlMaximal;
         }
       }
      

       this.anzahlMaximal = anzahlMaximalInternal;

         }

        
      @javax.persistence.Column(name = "ANZAHL_MINIMAL", nullable = EntschaedigungsartConstants.ANZAHL_MINIMAL_NULLABLE, precision=EntschaedigungsartConstants.ANZAHL_MINIMAL_PRECISION, scale=EntschaedigungsartConstants.ANZAHL_MINIMAL_SCALE)
            
  protected java.lang.Long anzahlMinimal =  Long.valueOf("1");

  @javax.persistence.Transient
  protected boolean hasChangedAnzahlMinimal = false;

  public boolean hasChangedAnzahlMinimal(){
    return hasChangedAnzahlMinimal;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertAnzahlMinimal = false;
     @javax.persistence.Transient
     private transient java.lang.Long wertNachLadenAnzahlMinimal;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.ANZAHL_MINIMAL
   */
    @Override   public  java.lang.Long getAnzahlMinimal() {
        return anzahlMinimal;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.ANZAHL_MINIMAL
   *
   * @param anzahlMinimal
   */
  @Override   public void setAnzahlMinimal( java.lang.Long anzahlMinimal) {

       resetTkCache();
                  java.lang.Long anzahlMinimalInternal = anzahlMinimal;
       
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.anzahlMinimal
      , anzahlMinimalInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedAnzahlMinimal |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("anzahlMinimal");
      }


             if (!isSeitLadenVeraendertAnzahlMinimal) {
          isSeitLadenVeraendertAnzahlMinimal = thisAttributChanged;
         if (isSeitLadenVeraendertAnzahlMinimal){
           wertNachLadenAnzahlMinimal=this.anzahlMinimal;
         }
       }
      

       this.anzahlMinimal = anzahlMinimalInternal;

         }

        
    @javax.persistence.Enumerated(javax.persistence.EnumType.STRING)
      @javax.persistence.Column(name = "BERECHNUNGSART", nullable = EntschaedigungsartConstants.BERECHNUNGSART_NULLABLE)
    
  protected de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart berechnungsart =  de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart.PER_EINSATZ;

  @javax.persistence.Transient
  protected boolean hasChangedBerechnungsart = false;

  public boolean hasChangedBerechnungsart(){
    return hasChangedBerechnungsart;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertBerechnungsart = false;
     @javax.persistence.Transient
     private transient de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart wertNachLadenBerechnungsart;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.BERECHNUNGSART
   */
    @Override   public  de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart getBerechnungsart() {
        return berechnungsart;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.BERECHNUNGSART
   *
   * @param berechnungsart
   */
  @Override   public void setBerechnungsart( de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart berechnungsart) {

       resetTkCache();
                  de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart berechnungsartInternal = berechnungsart;
       
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.berechnungsart
      , berechnungsartInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedBerechnungsart |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("berechnungsart");
      }


             if (!isSeitLadenVeraendertBerechnungsart) {
          isSeitLadenVeraendertBerechnungsart = thisAttributChanged;
         if (isSeitLadenVeraendertBerechnungsart){
           wertNachLadenBerechnungsart=this.berechnungsart;
         }
       }
      

       this.berechnungsart = berechnungsartInternal;

         }

        
  @javax.persistence.Column(name = "BESCHREIBUNG", nullable = EntschaedigungsartConstants.BESCHREIBUNG_NULLABLE, length=EntschaedigungsartConstants.BESCHREIBUNG_MAX_LENGTH)
        
  protected java.lang.String beschreibung =  null;

  @javax.persistence.Transient
  protected boolean hasChangedBeschreibung = false;

  public boolean hasChangedBeschreibung(){
    return hasChangedBeschreibung;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertBeschreibung = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenBeschreibung;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.BESCHREIBUNG
   */
  @javax.annotation.Nullable   @Override   public  java.lang.String getBeschreibung() {
        return beschreibung;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.BESCHREIBUNG
   *
   * @param beschreibung
   */
  @Override   public void setBeschreibung(@javax.annotation.Nullable  java.lang.String beschreibung) {

       resetTkCache();
                  
                          java.lang.String beschreibungInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(beschreibung, EntschaedigungsartConstants.BESCHREIBUNG_MAX_LENGTH, getId(), getClass());
                  
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.beschreibung
      , beschreibungInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedBeschreibung |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("beschreibung");
      }


             if (!isSeitLadenVeraendertBeschreibung) {
          isSeitLadenVeraendertBeschreibung = thisAttributChanged;
         if (isSeitLadenVeraendertBeschreibung){
           wertNachLadenBeschreibung=this.beschreibung;
         }
       }
      

       this.beschreibung = beschreibungInternal;

         }

        
      @javax.persistence.Column(name = "BEZEICHNUNG", nullable = EntschaedigungsartConstants.BEZEICHNUNG_NULLABLE, length=EntschaedigungsartConstants.BEZEICHNUNG_MAX_LENGTH)
        
  protected java.lang.String bezeichnung =  null;

  @javax.persistence.Transient
  protected boolean hasChangedBezeichnung = false;

  public boolean hasChangedBezeichnung(){
    return hasChangedBezeichnung;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertBezeichnung = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenBezeichnung;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.BEZEICHNUNG
   */
    @Override   public  java.lang.String getBezeichnung() {
        return bezeichnung;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.BEZEICHNUNG
   *
   * @param bezeichnung
   */
  @Override   public void setBezeichnung( java.lang.String bezeichnung) {

       resetTkCache();
                  
                          java.lang.String bezeichnungInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(bezeichnung, EntschaedigungsartConstants.BEZEICHNUNG_MAX_LENGTH, getId(), getClass());
                  
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.bezeichnung
      , bezeichnungInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedBezeichnung |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("bezeichnung");
      }


             if (!isSeitLadenVeraendertBezeichnung) {
          isSeitLadenVeraendertBezeichnung = thisAttributChanged;
         if (isSeitLadenVeraendertBezeichnung){
           wertNachLadenBezeichnung=this.bezeichnung;
         }
       }
      

       this.bezeichnung = bezeichnungInternal;

         }

        
      @javax.persistence.Column(name = "EINZELBETRAG_INITIAL", nullable = EntschaedigungsartConstants.EINZELBETRAG_INITIAL_NULLABLE, precision=EntschaedigungsartConstants.EINZELBETRAG_INITIAL_PRECISION, scale=EntschaedigungsartConstants.EINZELBETRAG_INITIAL_SCALE)
            
  protected java.math.BigDecimal einzelbetragInitial =  java.math.BigDecimal.valueOf(0L);

  @javax.persistence.Transient
  protected boolean hasChangedEinzelbetragInitial = false;

  public boolean hasChangedEinzelbetragInitial(){
    return hasChangedEinzelbetragInitial;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertEinzelbetragInitial = false;
     @javax.persistence.Transient
     private transient java.math.BigDecimal wertNachLadenEinzelbetragInitial;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.EINZELBETRAG_INITIAL
   */
    @Override   public  java.math.BigDecimal getEinzelbetragInitial() {
        return einzelbetragInitial;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.EINZELBETRAG_INITIAL
   *
   * @param einzelbetragInitial
   */
  @Override   public void setEinzelbetragInitial( java.math.BigDecimal einzelbetragInitial) {

       resetTkCache();
                  java.math.BigDecimal einzelbetragInitialInternal = einzelbetragInitial;
       
                java.math.BigDecimal alterWert = getEinzelbetragInitial();
         einzelbetragInitialInternal = preProcessEinzelbetragInitial(einzelbetragInitialInternal);
         preSetEinzelbetragInitial(alterWert, einzelbetragInitialInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.einzelbetragInitial
      , einzelbetragInitialInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedEinzelbetragInitial |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("einzelbetragInitial");
      }


             if (!isSeitLadenVeraendertEinzelbetragInitial) {
          isSeitLadenVeraendertEinzelbetragInitial = thisAttributChanged;
         if (isSeitLadenVeraendertEinzelbetragInitial){
           wertNachLadenEinzelbetragInitial=this.einzelbetragInitial;
         }
       }
      

       this.einzelbetragInitial = einzelbetragInitialInternal;

                postSetEinzelbetragInitial(alterWert, einzelbetragInitialInternal);
         }

  
    @Override
    protected java.math.BigDecimal preProcessEinzelbetragInitial(java.math.BigDecimal neuerWert) {
      return super.preProcessEinzelbetragInitial(neuerWert);
    }

    @Override
    protected void preSetEinzelbetragInitial(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.preSetEinzelbetragInitial(alterWert, neuerWert);
    }

    @Override
    protected void postSetEinzelbetragInitial(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.postSetEinzelbetragInitial(alterWert, neuerWert);
    }
        
  @javax.persistence.Column(name = "EINZELBETRAG_MAXIMAL", nullable = EntschaedigungsartConstants.EINZELBETRAG_MAXIMAL_NULLABLE, precision=EntschaedigungsartConstants.EINZELBETRAG_MAXIMAL_PRECISION, scale=EntschaedigungsartConstants.EINZELBETRAG_MAXIMAL_SCALE)
            
  protected java.math.BigDecimal einzelbetragMaximal =  null;

  @javax.persistence.Transient
  protected boolean hasChangedEinzelbetragMaximal = false;

  public boolean hasChangedEinzelbetragMaximal(){
    return hasChangedEinzelbetragMaximal;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertEinzelbetragMaximal = false;
     @javax.persistence.Transient
     private transient java.math.BigDecimal wertNachLadenEinzelbetragMaximal;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.EINZELBETRAG_MAXIMAL
   */
  @javax.annotation.Nullable   @Override   public  java.math.BigDecimal getEinzelbetragMaximal() {
        return einzelbetragMaximal;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.EINZELBETRAG_MAXIMAL
   *
   * @param einzelbetragMaximal
   */
  @Override   public void setEinzelbetragMaximal(@javax.annotation.Nullable  java.math.BigDecimal einzelbetragMaximal) {

       resetTkCache();
                  java.math.BigDecimal einzelbetragMaximalInternal = einzelbetragMaximal;
       
                java.math.BigDecimal alterWert = getEinzelbetragMaximal();
         einzelbetragMaximalInternal = preProcessEinzelbetragMaximal(einzelbetragMaximalInternal);
         preSetEinzelbetragMaximal(alterWert, einzelbetragMaximalInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.einzelbetragMaximal
      , einzelbetragMaximalInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedEinzelbetragMaximal |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("einzelbetragMaximal");
      }


             if (!isSeitLadenVeraendertEinzelbetragMaximal) {
          isSeitLadenVeraendertEinzelbetragMaximal = thisAttributChanged;
         if (isSeitLadenVeraendertEinzelbetragMaximal){
           wertNachLadenEinzelbetragMaximal=this.einzelbetragMaximal;
         }
       }
      

       this.einzelbetragMaximal = einzelbetragMaximalInternal;

                postSetEinzelbetragMaximal(alterWert, einzelbetragMaximalInternal);
         }

  
    @Override
    protected java.math.BigDecimal preProcessEinzelbetragMaximal(java.math.BigDecimal neuerWert) {
      return super.preProcessEinzelbetragMaximal(neuerWert);
    }

    @Override
    protected void preSetEinzelbetragMaximal(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.preSetEinzelbetragMaximal(alterWert, neuerWert);
    }

    @Override
    protected void postSetEinzelbetragMaximal(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.postSetEinzelbetragMaximal(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "EINZELBETRAG_MINIMAL", nullable = EntschaedigungsartConstants.EINZELBETRAG_MINIMAL_NULLABLE, precision=EntschaedigungsartConstants.EINZELBETRAG_MINIMAL_PRECISION, scale=EntschaedigungsartConstants.EINZELBETRAG_MINIMAL_SCALE)
            
  protected java.math.BigDecimal einzelbetragMinimal =  java.math.BigDecimal.valueOf(0L);

  @javax.persistence.Transient
  protected boolean hasChangedEinzelbetragMinimal = false;

  public boolean hasChangedEinzelbetragMinimal(){
    return hasChangedEinzelbetragMinimal;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertEinzelbetragMinimal = false;
     @javax.persistence.Transient
     private transient java.math.BigDecimal wertNachLadenEinzelbetragMinimal;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.EINZELBETRAG_MINIMAL
   */
    @Override   public  java.math.BigDecimal getEinzelbetragMinimal() {
        return einzelbetragMinimal;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.EINZELBETRAG_MINIMAL
   *
   * @param einzelbetragMinimal
   */
  @Override   public void setEinzelbetragMinimal( java.math.BigDecimal einzelbetragMinimal) {

       resetTkCache();
                  java.math.BigDecimal einzelbetragMinimalInternal = einzelbetragMinimal;
       
                java.math.BigDecimal alterWert = getEinzelbetragMinimal();
         einzelbetragMinimalInternal = preProcessEinzelbetragMinimal(einzelbetragMinimalInternal);
         preSetEinzelbetragMinimal(alterWert, einzelbetragMinimalInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.einzelbetragMinimal
      , einzelbetragMinimalInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedEinzelbetragMinimal |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("einzelbetragMinimal");
      }


             if (!isSeitLadenVeraendertEinzelbetragMinimal) {
          isSeitLadenVeraendertEinzelbetragMinimal = thisAttributChanged;
         if (isSeitLadenVeraendertEinzelbetragMinimal){
           wertNachLadenEinzelbetragMinimal=this.einzelbetragMinimal;
         }
       }
      

       this.einzelbetragMinimal = einzelbetragMinimalInternal;

                postSetEinzelbetragMinimal(alterWert, einzelbetragMinimalInternal);
         }

  
    @Override
    protected java.math.BigDecimal preProcessEinzelbetragMinimal(java.math.BigDecimal neuerWert) {
      return super.preProcessEinzelbetragMinimal(neuerWert);
    }

    @Override
    protected void preSetEinzelbetragMinimal(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.preSetEinzelbetragMinimal(alterWert, neuerWert);
    }

    @Override
    protected void postSetEinzelbetragMinimal(java.math.BigDecimal alterWert, java.math.BigDecimal neuerWert) {
      super.postSetEinzelbetragMinimal(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "ENTSCHAEDIGUNGSART_TEMPLATE", nullable = EntschaedigungsartConstants.ENTSCHAEDIGUNGSART_TEMPLATE_NULLABLE, length=EntschaedigungsartConstants.ENTSCHAEDIGUNGSART_TEMPLATE_MAX_LENGTH)
        
  protected java.lang.String template =  "INDIVIDUELL";

  @javax.persistence.Transient
  protected boolean hasChangedTemplate = false;

  public boolean hasChangedTemplate(){
    return hasChangedTemplate;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertTemplate = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenTemplate;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.ENTSCHAEDIGUNGSART_TEMPLATE
   */
    @Override   public  java.lang.String getTemplate() {
        return template;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.ENTSCHAEDIGUNGSART_TEMPLATE
   *
   * @param template
   */
  @Override   public void setTemplate( java.lang.String template) {

       resetTkCache();
                  
                          java.lang.String templateInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(template, EntschaedigungsartConstants.ENTSCHAEDIGUNGSART_TEMPLATE_MAX_LENGTH, getId(), getClass());
                  
                java.lang.String alterWert = getTemplate();
         templateInternal = preProcessTemplate(templateInternal);
         preSetTemplate(alterWert, templateInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.template
      , templateInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedTemplate |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("template");
      }


             if (!isSeitLadenVeraendertTemplate) {
          isSeitLadenVeraendertTemplate = thisAttributChanged;
         if (isSeitLadenVeraendertTemplate){
           wertNachLadenTemplate=this.template;
         }
       }
      

       this.template = templateInternal;

                postSetTemplate(alterWert, templateInternal);
         }

  
    @Override
    protected java.lang.String preProcessTemplate(java.lang.String neuerWert) {
      return super.preProcessTemplate(neuerWert);
    }

    @Override
    protected void preSetTemplate(java.lang.String alterWert, java.lang.String neuerWert) {
      super.preSetTemplate(alterWert, neuerWert);
    }

    @Override
    protected void postSetTemplate(java.lang.String alterWert, java.lang.String neuerWert) {
      super.postSetTemplate(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "KRITERIUM_EINSATZFUNKTION", nullable = EntschaedigungsartConstants.KRITERIUM_EINSATZFUNKTION_NULLABLE, length=EntschaedigungsartConstants.KRITERIUM_EINSATZFUNKTION_MAX_LENGTH)
        
  protected java.lang.String kriteriumEinsatzfunktion =  "IRRELEVANT";

  @javax.persistence.Transient
  protected boolean hasChangedKriteriumEinsatzfunktion = false;

  public boolean hasChangedKriteriumEinsatzfunktion(){
    return hasChangedKriteriumEinsatzfunktion;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertKriteriumEinsatzfunktion = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenKriteriumEinsatzfunktion;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.KRITERIUM_EINSATZFUNKTION
   */
    @Override   public  java.lang.String getKriteriumEinsatzfunktion() {
        return kriteriumEinsatzfunktion;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.KRITERIUM_EINSATZFUNKTION
   *
   * @param kriteriumEinsatzfunktion
   */
  @Override   public void setKriteriumEinsatzfunktion( java.lang.String kriteriumEinsatzfunktion) {

       resetTkCache();
                  
                          java.lang.String kriteriumEinsatzfunktionInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(kriteriumEinsatzfunktion, EntschaedigungsartConstants.KRITERIUM_EINSATZFUNKTION_MAX_LENGTH, getId(), getClass());
                  
                java.lang.String alterWert = getKriteriumEinsatzfunktion();
         kriteriumEinsatzfunktionInternal = preProcessKriteriumEinsatzfunktion(kriteriumEinsatzfunktionInternal);
         preSetKriteriumEinsatzfunktion(alterWert, kriteriumEinsatzfunktionInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.kriteriumEinsatzfunktion
      , kriteriumEinsatzfunktionInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedKriteriumEinsatzfunktion |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("kriteriumEinsatzfunktion");
      }


             if (!isSeitLadenVeraendertKriteriumEinsatzfunktion) {
          isSeitLadenVeraendertKriteriumEinsatzfunktion = thisAttributChanged;
         if (isSeitLadenVeraendertKriteriumEinsatzfunktion){
           wertNachLadenKriteriumEinsatzfunktion=this.kriteriumEinsatzfunktion;
         }
       }
      

       this.kriteriumEinsatzfunktion = kriteriumEinsatzfunktionInternal;

                postSetKriteriumEinsatzfunktion(alterWert, kriteriumEinsatzfunktionInternal);
         }

  
    @Override
    protected java.lang.String preProcessKriteriumEinsatzfunktion(java.lang.String neuerWert) {
      return super.preProcessKriteriumEinsatzfunktion(neuerWert);
    }

    @Override
    protected void preSetKriteriumEinsatzfunktion(java.lang.String alterWert, java.lang.String neuerWert) {
      super.preSetKriteriumEinsatzfunktion(alterWert, neuerWert);
    }

    @Override
    protected void postSetKriteriumEinsatzfunktion(java.lang.String alterWert, java.lang.String neuerWert) {
      super.postSetKriteriumEinsatzfunktion(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "KRITERIUM_EINSATZORT", nullable = EntschaedigungsartConstants.KRITERIUM_EINSATZORT_NULLABLE, length=EntschaedigungsartConstants.KRITERIUM_EINSATZORT_MAX_LENGTH)
        
  protected java.lang.String kriteriumEinsatzort =  "IRRELEVANT";

  @javax.persistence.Transient
  protected boolean hasChangedKriteriumEinsatzort = false;

  public boolean hasChangedKriteriumEinsatzort(){
    return hasChangedKriteriumEinsatzort;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertKriteriumEinsatzort = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenKriteriumEinsatzort;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.KRITERIUM_EINSATZORT
   */
    @Override   public  java.lang.String getKriteriumEinsatzort() {
        return kriteriumEinsatzort;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.KRITERIUM_EINSATZORT
   *
   * @param kriteriumEinsatzort
   */
  @Override   public void setKriteriumEinsatzort( java.lang.String kriteriumEinsatzort) {

       resetTkCache();
                  
                          java.lang.String kriteriumEinsatzortInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(kriteriumEinsatzort, EntschaedigungsartConstants.KRITERIUM_EINSATZORT_MAX_LENGTH, getId(), getClass());
                  
                java.lang.String alterWert = getKriteriumEinsatzort();
         kriteriumEinsatzortInternal = preProcessKriteriumEinsatzort(kriteriumEinsatzortInternal);
         preSetKriteriumEinsatzort(alterWert, kriteriumEinsatzortInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.kriteriumEinsatzort
      , kriteriumEinsatzortInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedKriteriumEinsatzort |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("kriteriumEinsatzort");
      }


             if (!isSeitLadenVeraendertKriteriumEinsatzort) {
          isSeitLadenVeraendertKriteriumEinsatzort = thisAttributChanged;
         if (isSeitLadenVeraendertKriteriumEinsatzort){
           wertNachLadenKriteriumEinsatzort=this.kriteriumEinsatzort;
         }
       }
      

       this.kriteriumEinsatzort = kriteriumEinsatzortInternal;

                postSetKriteriumEinsatzort(alterWert, kriteriumEinsatzortInternal);
         }

  
    @Override
    protected java.lang.String preProcessKriteriumEinsatzort(java.lang.String neuerWert) {
      return super.preProcessKriteriumEinsatzort(neuerWert);
    }

    @Override
    protected void preSetKriteriumEinsatzort(java.lang.String alterWert, java.lang.String neuerWert) {
      super.preSetKriteriumEinsatzort(alterWert, neuerWert);
    }

    @Override
    protected void postSetKriteriumEinsatzort(java.lang.String alterWert, java.lang.String neuerWert) {
      super.postSetKriteriumEinsatzort(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "KRITERIUM_PERSONENDATEN_ART", nullable = EntschaedigungsartConstants.KRITERIUM_PERSONENDATEN_ART_NULLABLE, length=EntschaedigungsartConstants.KRITERIUM_PERSONENDATEN_ART_MAX_LENGTH)
        
  protected java.lang.String kriteriumPersonendatenArt =  "IRRELEVANT";

  @javax.persistence.Transient
  protected boolean hasChangedKriteriumPersonendatenArt = false;

  public boolean hasChangedKriteriumPersonendatenArt(){
    return hasChangedKriteriumPersonendatenArt;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertKriteriumPersonendatenArt = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenKriteriumPersonendatenArt;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.KRITERIUM_PERSONENDATEN_ART
   */
    @Override   public  java.lang.String getKriteriumPersonendatenArt() {
        return kriteriumPersonendatenArt;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.KRITERIUM_PERSONENDATEN_ART
   *
   * @param kriteriumPersonendatenArt
   */
  @Override   public void setKriteriumPersonendatenArt( java.lang.String kriteriumPersonendatenArt) {

       resetTkCache();
                  
                          java.lang.String kriteriumPersonendatenArtInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(kriteriumPersonendatenArt, EntschaedigungsartConstants.KRITERIUM_PERSONENDATEN_ART_MAX_LENGTH, getId(), getClass());
                  
                java.lang.String alterWert = getKriteriumPersonendatenArt();
         kriteriumPersonendatenArtInternal = preProcessKriteriumPersonendatenArt(kriteriumPersonendatenArtInternal);
         preSetKriteriumPersonendatenArt(alterWert, kriteriumPersonendatenArtInternal);
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.kriteriumPersonendatenArt
      , kriteriumPersonendatenArtInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedKriteriumPersonendatenArt |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("kriteriumPersonendatenArt");
      }


             if (!isSeitLadenVeraendertKriteriumPersonendatenArt) {
          isSeitLadenVeraendertKriteriumPersonendatenArt = thisAttributChanged;
         if (isSeitLadenVeraendertKriteriumPersonendatenArt){
           wertNachLadenKriteriumPersonendatenArt=this.kriteriumPersonendatenArt;
         }
       }
      

       this.kriteriumPersonendatenArt = kriteriumPersonendatenArtInternal;

                postSetKriteriumPersonendatenArt(alterWert, kriteriumPersonendatenArtInternal);
         }

  
    @Override
    protected java.lang.String preProcessKriteriumPersonendatenArt(java.lang.String neuerWert) {
      return super.preProcessKriteriumPersonendatenArt(neuerWert);
    }

    @Override
    protected void preSetKriteriumPersonendatenArt(java.lang.String alterWert, java.lang.String neuerWert) {
      super.preSetKriteriumPersonendatenArt(alterWert, neuerWert);
    }

    @Override
    protected void postSetKriteriumPersonendatenArt(java.lang.String alterWert, java.lang.String neuerWert) {
      super.postSetKriteriumPersonendatenArt(alterWert, neuerWert);
    }
        
      @javax.persistence.Column(name = "WAEHRUNG", nullable = EntschaedigungsartConstants.WAEHRUNG_NULLABLE, length=EntschaedigungsartConstants.WAEHRUNG_MAX_LENGTH)
        
  protected java.lang.String waehrungAlsIsoCode =  null;

  @javax.persistence.Transient
  protected boolean hasChangedWaehrungAlsIsoCode = false;

  public boolean hasChangedWaehrungAlsIsoCode(){
    return hasChangedWaehrungAlsIsoCode;
  }
       @javax.persistence.Transient
     private transient boolean isSeitLadenVeraendertWaehrungAlsIsoCode = false;
     @javax.persistence.Transient
     private transient java.lang.String wertNachLadenWaehrungAlsIsoCode;
  
  /**
   * 
   *
   * getter for ENTSCHAEDIGUNGSART.WAEHRUNG
   */
    @Override   public  java.lang.String getWaehrungAlsIsoCode() {
        return waehrungAlsIsoCode;
      }

  /**
   * 
   *
   * setter for ENTSCHAEDIGUNGSART.WAEHRUNG
   *
   * @param waehrungAlsIsoCode
   */
  @Override   public void setWaehrungAlsIsoCode( java.lang.String waehrungAlsIsoCode) {

       resetTkCache();
                  
                          java.lang.String waehrungAlsIsoCodeInternal = de.ivu.elect.jee.entity.EntityUtil.trimToNullOrMaxLength(waehrungAlsIsoCode, EntschaedigungsartConstants.WAEHRUNG_MAX_LENGTH, getId(), getClass());
                  
       
      boolean thisAttributChanged =
      !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.waehrungAlsIsoCode
      , waehrungAlsIsoCodeInternal);

      attributeChanged |= thisAttributChanged;

      hasChangedWaehrungAlsIsoCode |= thisAttributChanged;

      if (thisAttributChanged) {
      markDirty("waehrungAlsIsoCode");
      }


             if (!isSeitLadenVeraendertWaehrungAlsIsoCode) {
          isSeitLadenVeraendertWaehrungAlsIsoCode = thisAttributChanged;
         if (isSeitLadenVeraendertWaehrungAlsIsoCode){
           wertNachLadenWaehrungAlsIsoCode=this.waehrungAlsIsoCode;
         }
       }
      

       this.waehrungAlsIsoCode = waehrungAlsIsoCodeInternal;

         }

    
/**
 * Beziehungen N:1 unidirektional
 */
  /**
   * Beziehung (unidirektional) zu Wahltermin
   */
  @javax.persistence.ManyToOne(fetch =  javax.persistence.FetchType.LAZY , optional=false, cascade = {javax.persistence.CascadeType.PERSIST})
  @javax.persistence.JoinColumns(@javax.persistence.JoinColumn(name = "WAHLTERMIN_ID", referencedColumnName="WAHLTERMIN_ID"))
  protected de.ivu.elect.business.wahl.entity.Wahltermin wahltermin;

  /**
   * 
   */
  @Override
  public void setWahltermin( de.ivu.elect.business.wahl.entity.Wahltermin wahltermin){
    resetTkCache();
    
    boolean thisAttributChanged =
    !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.wahltermin
    , wahltermin);

    attributeChanged |= thisAttributChanged;

    hasChangedWahltermin |= thisAttributChanged;

    if (thisAttributChanged) {
    markDirty("wahltermin");
    }

    this.wahltermin = wahltermin;
      }

  /**
   * 
   */
    @Override
  public de.ivu.elect.business.wahl.entity.Wahltermin getWahltermin(){
    return this.wahltermin;
  }

  @javax.persistence.Transient
  protected boolean hasChangedWahltermin = false;

  public boolean hasChangedWahltermin(){
    return hasChangedWahltermin;
  }

  /**
   * Beziehung (unidirektional) zu Wahl
   */
  @javax.persistence.ManyToOne(fetch =  javax.persistence.FetchType.LAZY , optional=true, cascade = {javax.persistence.CascadeType.PERSIST})
  @javax.persistence.JoinColumns(@javax.persistence.JoinColumn(name = "WAHL_ID", referencedColumnName="WAHL_ID"))
  protected de.ivu.elect.business.wahl.entity.Wahl wahl;

  /**
   * 
   */
  @Override
  public void setWahl(@javax.annotation.Nullable  de.ivu.elect.business.wahl.entity.Wahl wahl){
    resetTkCache();
    
    boolean thisAttributChanged =
    !de.ivu.elect.jee.entity.EntityUtil.compareObjects(this.wahl
    , wahl);

    attributeChanged |= thisAttributChanged;

    hasChangedWahl |= thisAttributChanged;

    if (thisAttributChanged) {
    markDirty("wahl");
    }

    this.wahl = wahl;
      }

  /**
   * 
   */
  @javax.annotation.Nullable   @Override
  public de.ivu.elect.business.wahl.entity.Wahl getWahl(){
    return this.wahl;
  }

  @javax.persistence.Transient
  protected boolean hasChangedWahl = false;

  public boolean hasChangedWahl(){
    return hasChangedWahl;
  }


/**
 * Beziehungen N:1 bidirektional
 */

  /**
   * Beziehungen 1:N unidirektional (nicht unterstuetzt)
   */

  /**
   * Beziehungen 1:N bidirektional
   */

  /**
   * Beziehungen N:M bidirektional nicht selbstreferenzierend
   */


  /**
   * Beziehungen N:M bidirektional selbstreferenzierend
   */
  

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("Entschaedigungsart:");
    sb.append(getId());
    sb.append(" (TK: ");
    try {
      sb.append(getTk());
    } catch (Exception e) {
      sb.append(e.getMessage());
    }
    sb.append(")");
    return sb.toString();
}



  /**
   * Kopiert alle Attribute (ausser PK und Version) und UNIDIREKTIONALE n:1-Beziehungen in uebergebene Entitaet.
   *
   * @param other
   *
   * @deprecated Sollte nur mit Bedacht genutzt werden, da hier auch die Beziehungen kopiert werden. Deswegen markiert
   *             als Deprecated.
   */
  @Deprecated
  protected void copyEntity(Entschaedigungsart other){
                             other.anzahlInitial = this.anzahlInitial;
                                other.anzahlMaximal = this.anzahlMaximal;
                                other.anzahlMinimal = this.anzahlMinimal;
                                other.berechnungsart = this.berechnungsart;
                                other.beschreibung = this.beschreibung;
                                other.bezeichnung = this.bezeichnung;
                                other.einzelbetragInitial = this.einzelbetragInitial;
                                other.einzelbetragMaximal = this.einzelbetragMaximal;
                                other.einzelbetragMinimal = this.einzelbetragMinimal;
                                other.template = this.template;
                                other.kriteriumEinsatzfunktion = this.kriteriumEinsatzfunktion;
                                other.kriteriumEinsatzort = this.kriteriumEinsatzort;
                                other.kriteriumPersonendatenArt = this.kriteriumPersonendatenArt;
                                other.waehrungAlsIsoCode = this.waehrungAlsIsoCode;
           
  other.setWahltermin(this.getWahltermin());
  other.setWahl(this.getWahl());
    if (this.transientContext != null && !this.transientContext.isEmpty()) {
      other.getTransientContext().putAll(this.transientContext);
    }
  }



    @Override
    public void copyEntityAttributesToOtherEntity(de.ivu.elect.jee.entity.Entity other) {
      if (other==null){
        return;
      }
      if (other.isInstanceOf(Entschaedigungsart.class)){
        copyEntityAttributesUsingSetter((Entschaedigungsart) other.castTo(Entschaedigungsart.class).getEntity());
      } else {
        throw new IllegalArgumentException("Keine Instanz von Entschaedigungsart: " + other);
      }
    }

  /**
  * Kopiert alle Attribute (ausser PK und Version)  in uebergebene Entitaet.
  *
  */
  public void copyEntityAttributesUsingSetter(Entschaedigungsart other){
               other.setAnzahlInitial(this.anzahlInitial);
                  other.setAnzahlMaximal(this.anzahlMaximal);
                  other.setAnzahlMinimal(this.anzahlMinimal);
                  other.setBerechnungsart(this.berechnungsart);
                  other.setBeschreibung(this.beschreibung);
                  other.setBezeichnung(this.bezeichnung);
                  other.setEinzelbetragInitial(this.einzelbetragInitial);
                  other.setEinzelbetragMaximal(this.einzelbetragMaximal);
                  other.setEinzelbetragMinimal(this.einzelbetragMinimal);
                  other.setTemplate(this.template);
                  other.setKriteriumEinsatzfunktion(this.kriteriumEinsatzfunktion);
                  other.setKriteriumEinsatzort(this.kriteriumEinsatzort);
                  other.setKriteriumPersonendatenArt(this.kriteriumPersonendatenArt);
                  other.setWaehrungAlsIsoCode(this.waehrungAlsIsoCode);
           if (this.transientContext != null && !this.transientContext.isEmpty()) {
      other.getTransientContext().putAll(this.transientContext);
    }
  }


  /**
   * Kopiert alle veränderten Attribute (ausser PK, CustomData, wenn vorhanden und Version) in uebergebene Entitaet.
   *
   */
  public void copyChangedEntityAttributesUsingSetter(Entschaedigungsart other){
                       if (hasChangedAnzahlInitial) {
        other.setAnzahlInitial(this.anzahlInitial);
      }
                             if (hasChangedAnzahlMaximal) {
        other.setAnzahlMaximal(this.anzahlMaximal);
      }
                             if (hasChangedAnzahlMinimal) {
        other.setAnzahlMinimal(this.anzahlMinimal);
      }
                             if (hasChangedBerechnungsart) {
        other.setBerechnungsart(this.berechnungsart);
      }
                             if (hasChangedBeschreibung) {
        other.setBeschreibung(this.beschreibung);
      }
                             if (hasChangedBezeichnung) {
        other.setBezeichnung(this.bezeichnung);
      }
                             if (hasChangedEinzelbetragInitial) {
        other.setEinzelbetragInitial(this.einzelbetragInitial);
      }
                             if (hasChangedEinzelbetragMaximal) {
        other.setEinzelbetragMaximal(this.einzelbetragMaximal);
      }
                             if (hasChangedEinzelbetragMinimal) {
        other.setEinzelbetragMinimal(this.einzelbetragMinimal);
      }
                             if (hasChangedTemplate) {
        other.setTemplate(this.template);
      }
                             if (hasChangedKriteriumEinsatzfunktion) {
        other.setKriteriumEinsatzfunktion(this.kriteriumEinsatzfunktion);
      }
                             if (hasChangedKriteriumEinsatzort) {
        other.setKriteriumEinsatzort(this.kriteriumEinsatzort);
      }
                             if (hasChangedKriteriumPersonendatenArt) {
        other.setKriteriumPersonendatenArt(this.kriteriumPersonendatenArt);
      }
                             if (hasChangedWaehrungAlsIsoCode) {
        other.setWaehrungAlsIsoCode(this.waehrungAlsIsoCode);
      }
             }





    @javax.persistence.Transient
    private transient EntschaedigungsartTK tkCache;

    protected void resetTkCache() {
        tkCache = null;
    }

    public EntschaedigungsartTK getEntschaedigungsartTK(){
    if (tkCache==null) {
    tkCache = new EntschaedigungsartTK(

getBezeichnung()
, getKriteriumPersonendatenArt()
, getTemplate()


  );}
  return tkCache;
}
    @Override
    public de.ivu.elect.jee.entity.tk.EntityTK getTk() {
       return getEntschaedigungsartTK();
    }

  @Override
  public EntschaedigungsartUK getUk(){
    return getEntschaedigungsartUK();
  }

  @Override
  public Class< ? > getEntityClass() {
    return Entschaedigungsart.class;
  }

public EntschaedigungsartUK getEntschaedigungsartUK(){

   return  new EntschaedigungsartUK(



  );
}

  @javax.persistence.Transient
  private transient EntschaedigungsartProperties properties;

  public EntschaedigungsartProperties getProperties(){
    if (properties == null) {
      properties = new EntschaedigungsartProperties(this);
    }
    return properties;
  }

  /**
   * @deprecated getProperties() verwenden.
   */
  @Deprecated
  public EntschaedigungsartProperties getEntschaedigungsartProperties(){
    return getProperties();
  }

  @Override
  public String getEntityTechnicalName() {
    return EntschaedigungsartConstants.MESSAGE_KEY_ENTITY_EINZAHL;
  }

  @Override
  public boolean isAenderungenProtokollieren(){
    
    return true;
  }


    @Override
   public void setProtokollierteAttributeMitWerten(java.util.Map<String, de.ivu.elect.jee.protokollierung.AttributWertVorher> werteVorher) {
     
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_INITIAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_INITIAL_EINZAHL);

        anzahlInitial =
                        vorher.getAttributTyp().getValueAsLong(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MAXIMAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MAXIMAL_EINZAHL);

        anzahlMaximal =
                        vorher.getAttributTyp().getValueAsLong(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MINIMAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MINIMAL_EINZAHL);

        anzahlMinimal =
                        vorher.getAttributTyp().getValueAsLong(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_BERECHNUNGSART_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_BERECHNUNGSART_EINZAHL);

        berechnungsart =
     (de.ivu.elect.business.entschaedigung.entity.EntschaedigungsartBerechnungsart) vorher.getAttributTyp().getValueAsEnum(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_BESCHREIBUNG_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_BESCHREIBUNG_EINZAHL);

        beschreibung =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_BEZEICHNUNG_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_BEZEICHNUNG_EINZAHL);

        bezeichnung =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_INITIAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_INITIAL_EINZAHL);

        einzelbetragInitial =
                        vorher.getAttributTyp().getValueAsBigDecimal(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MAXIMAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MAXIMAL_EINZAHL);

        einzelbetragMaximal =
                        vorher.getAttributTyp().getValueAsBigDecimal(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MINIMAL_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MINIMAL_EINZAHL);

        einzelbetragMinimal =
                        vorher.getAttributTyp().getValueAsBigDecimal(vorher.getWertVorher());
                  }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_ENTSCHAEDIGUNGSART_TEMPLATE_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_ENTSCHAEDIGUNGSART_TEMPLATE_EINZAHL);

        template =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZFUNKTION_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZFUNKTION_EINZAHL);

        kriteriumEinsatzfunktion =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZORT_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZORT_EINZAHL);

        kriteriumEinsatzort =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_PERSONENDATEN_ART_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_PERSONENDATEN_ART_EINZAHL);

        kriteriumPersonendatenArt =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

            
      if (werteVorher.containsKey(EntschaedigungsartConstants.MESSAGE_KEY_WAEHRUNG_EINZAHL)){
        de.ivu.elect.jee.protokollierung.AttributWertVorher vorher = werteVorher.get(EntschaedigungsartConstants.MESSAGE_KEY_WAEHRUNG_EINZAHL);

        waehrungAlsIsoCode =
     vorher.getAttributTyp().getValueAsString(vorher.getWertVorher());
          }

                }

  @Override
  public java.util.Map<String, de.ivu.elect.jee.protokollierung.VorherNachherWert> getProtokollierteAttributeMitWerten() {
    java.util.Map<String,de.ivu.elect.jee.protokollierung.VorherNachherWert> result;
        result = createEmptyProtokollierteAttributeMitWertenMap();
                        if (isSeitLadenVeraendertAnzahlInitial) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_INITIAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.LONG
                            , wertNachLadenAnzahlInitial , anzahlInitial));
    }
                            if (isSeitLadenVeraendertAnzahlMaximal) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MAXIMAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.LONG
                            , wertNachLadenAnzahlMaximal , anzahlMaximal));
    }
                            if (isSeitLadenVeraendertAnzahlMinimal) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MINIMAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.LONG
                            , wertNachLadenAnzahlMinimal , anzahlMinimal));
    }
                            if (isSeitLadenVeraendertBerechnungsart) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_BERECHNUNGSART_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.ENUM
                , wertNachLadenBerechnungsart , berechnungsart));
    }
                            if (isSeitLadenVeraendertBeschreibung) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_BESCHREIBUNG_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenBeschreibung , beschreibung));
    }
                            if (isSeitLadenVeraendertBezeichnung) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_BEZEICHNUNG_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenBezeichnung , bezeichnung));
    }
                            if (isSeitLadenVeraendertEinzelbetragInitial) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_INITIAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.BIG_DECIMAL
                            , wertNachLadenEinzelbetragInitial , einzelbetragInitial));
    }
                            if (isSeitLadenVeraendertEinzelbetragMaximal) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MAXIMAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.BIG_DECIMAL
                            , wertNachLadenEinzelbetragMaximal , einzelbetragMaximal));
    }
                            if (isSeitLadenVeraendertEinzelbetragMinimal) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MINIMAL_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
                                    de.ivu.elect.jee.protokollierung.AttributTyp.BIG_DECIMAL
                            , wertNachLadenEinzelbetragMinimal , einzelbetragMinimal));
    }
                            if (isSeitLadenVeraendertTemplate) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_ENTSCHAEDIGUNGSART_TEMPLATE_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenTemplate , template));
    }
                            if (isSeitLadenVeraendertKriteriumEinsatzfunktion) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZFUNKTION_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenKriteriumEinsatzfunktion , kriteriumEinsatzfunktion));
    }
                            if (isSeitLadenVeraendertKriteriumEinsatzort) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZORT_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenKriteriumEinsatzort , kriteriumEinsatzort));
    }
                            if (isSeitLadenVeraendertKriteriumPersonendatenArt) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_PERSONENDATEN_ART_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenKriteriumPersonendatenArt , kriteriumPersonendatenArt));
    }
                            if (isSeitLadenVeraendertWaehrungAlsIsoCode) {
      result.put(EntschaedigungsartConstants.MESSAGE_KEY_WAEHRUNG_EINZAHL, new de.ivu.elect.jee.protokollierung.VorherNachherWert(
         de.ivu.elect.jee.protokollierung.AttributTyp.STRING
                , wertNachLadenWaehrungAlsIsoCode , waehrungAlsIsoCode));
    }
                return result;
  }

  @Override
  public void resetProtokollierteAttribute() {
                      isSeitLadenVeraendertAnzahlInitial = false;
      wertNachLadenAnzahlInitial = null;
                          isSeitLadenVeraendertAnzahlMaximal = false;
      wertNachLadenAnzahlMaximal = null;
                          isSeitLadenVeraendertAnzahlMinimal = false;
      wertNachLadenAnzahlMinimal = null;
                          isSeitLadenVeraendertBerechnungsart = false;
      wertNachLadenBerechnungsart = null;
                          isSeitLadenVeraendertBeschreibung = false;
      wertNachLadenBeschreibung = null;
                          isSeitLadenVeraendertBezeichnung = false;
      wertNachLadenBezeichnung = null;
                          isSeitLadenVeraendertEinzelbetragInitial = false;
      wertNachLadenEinzelbetragInitial = null;
                          isSeitLadenVeraendertEinzelbetragMaximal = false;
      wertNachLadenEinzelbetragMaximal = null;
                          isSeitLadenVeraendertEinzelbetragMinimal = false;
      wertNachLadenEinzelbetragMinimal = null;
                          isSeitLadenVeraendertTemplate = false;
      wertNachLadenTemplate = null;
                          isSeitLadenVeraendertKriteriumEinsatzfunktion = false;
      wertNachLadenKriteriumEinsatzfunktion = null;
                          isSeitLadenVeraendertKriteriumEinsatzort = false;
      wertNachLadenKriteriumEinsatzort = null;
                          isSeitLadenVeraendertKriteriumPersonendatenArt = false;
      wertNachLadenKriteriumPersonendatenArt = null;
                          isSeitLadenVeraendertWaehrungAlsIsoCode = false;
      wertNachLadenWaehrungAlsIsoCode = null;
                   }

  @Override
  public  java.util.List<de.ivu.elect.jee.entity.EntityFachlichAbhaengigNode> getFachlichAbhaengigeEntitaeten(){
            java.util.List<de.ivu.elect.jee.entity.EntityFachlichAbhaengigNode> result = new java.util.ArrayList<>();
                            return result;
  }

        
            protected String getInitialDiscriminator() {
              return "ENTSCHAEDIGUNGSART";
            }

            @Override
            public boolean isInstanceOf(Class<?> clazz) {
            return clazz.isInstance(this);
            }


            @Override
            public <E> de.ivu.elect.jee.entity.EntityContainer<E> castTo(Class<E> clazz) {
                return new de.ivu.elect.jee.entity.EntityContainer<>((E)this); // EntityContainer ist notwendig, da sonst von Hibernate die Entität wieder durch ihren Proxy ersetzt wird...
            }

  public boolean isPersistent() {
    return getId() != null;
  }


   private static final String BASE_CLASS_NAME = "Entschaedigungsart";
   @Override
   public String getBaseClassName() {
     return BASE_CLASS_NAME;
   }


    @Override
    public boolean equals(Object obj) {
    if (obj == null) {
    return false;
    }

    if (this==obj) {
    return true;
    }


    if (id != null) {
      try {
        return id.longValue() == ((de.ivu.elect.jee.entity.Entity) obj).getId().longValue() && BASE_CLASS_NAME.equals(((de.ivu.elect.jee.entity.Entity) obj).getBaseClassName());
      } catch (Exception ignored) {
        // do nothing
        return false;
      }
    }
   return super.equals(obj);
    }

  @javax.persistence.Transient
  private transient boolean hashCodeBerechnet = false;

  @javax.persistence.Transient
  private transient int hashCode = 0;


  @Deprecated // nur in Unit-Tests verwenden(!)
  public void resetHashCode() {
    hashCodeBerechnet = false;
    hashCode = 0;
  }

  @Override
    public int hashCode() {
      if (hashCodeBerechnet) {
      return hashCode;
    }

    if (id == null) {
      hashCode = super.hashCode();
    } else {
      hashCode = id.hashCode();
    }

    hashCodeBerechnet = true;

    return hashCode;

    }


                            @javax.persistence.Transient
                private transient java.util.Set
            <String> dirtyProperties = null;

                protected void markDirty(String property) {
            
          }

          public java.util.Set
      <String> getDirtyProperties() {
          if (dirtyProperties==null){
          dirtyProperties = new java.util.HashSet<>();
          }
          return dirtyProperties;
          }

          public void clearDirtyProperties(){
          dirtyProperties = null;
          }
          public boolean isHibernateDirty() {
            return dirtyProperties!=null;
          }

      
                public void resetValidation() {
        
    validationResult = null;
        }

        @javax.persistence.Transient
        private transient java.util.Set<de.ivu.elect.jee.entity.EntityConstraintViolation> validationResult;

                    public java.util.Set<de.ivu.elect.jee.entity.EntityConstraintViolation> validateEntity() {
            if (validationResult==null) {
               validationResult  = new java.util.HashSet<>();
                                                                   de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(anzahlInitial, this, EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_INITIAL_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.ANZAHL_INITIAL_MAX_VALUE, EntschaedigungsartConstants.ANZAHL_INITIAL_MIN_VALUE, anzahlInitial, this, EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_INITIAL_EINZAHL, validationResult);
                                                                                                   de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.ANZAHL_MAXIMAL_MAX_VALUE, EntschaedigungsartConstants.ANZAHL_MAXIMAL_MIN_VALUE, anzahlMaximal, this, EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MAXIMAL_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(anzahlMinimal, this, EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MINIMAL_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.ANZAHL_MINIMAL_MAX_VALUE, EntschaedigungsartConstants.ANZAHL_MINIMAL_MIN_VALUE, anzahlMinimal, this, EntschaedigungsartConstants.MESSAGE_KEY_ANZAHL_MINIMAL_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(berechnungsart, this, EntschaedigungsartConstants.MESSAGE_KEY_BERECHNUNGSART_EINZAHL, validationResult);
                                                                                                                                   de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.BESCHREIBUNG_MAX_LENGTH ,  beschreibung, this, EntschaedigungsartConstants.MESSAGE_KEY_BESCHREIBUNG_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(bezeichnung, this, EntschaedigungsartConstants.MESSAGE_KEY_BEZEICHNUNG_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.BEZEICHNUNG_MAX_LENGTH , 1 ,  bezeichnung, this, EntschaedigungsartConstants.MESSAGE_KEY_BEZEICHNUNG_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(einzelbetragInitial, this, EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_INITIAL_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.EINZELBETRAG_INITIAL_MAX_VALUE, EntschaedigungsartConstants.EINZELBETRAG_INITIAL_MIN_VALUE, einzelbetragInitial, this, EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_INITIAL_EINZAHL, validationResult);
                                                                                                   de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.EINZELBETRAG_MAXIMAL_MAX_VALUE, EntschaedigungsartConstants.EINZELBETRAG_MAXIMAL_MIN_VALUE, einzelbetragMaximal, this, EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MAXIMAL_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(einzelbetragMinimal, this, EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MINIMAL_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkValueRange(EntschaedigungsartConstants.EINZELBETRAG_MINIMAL_MAX_VALUE, EntschaedigungsartConstants.EINZELBETRAG_MINIMAL_MIN_VALUE, einzelbetragMinimal, this, EntschaedigungsartConstants.MESSAGE_KEY_EINZELBETRAG_MINIMAL_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(template, this, EntschaedigungsartConstants.MESSAGE_KEY_ENTSCHAEDIGUNGSART_TEMPLATE_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.ENTSCHAEDIGUNGSART_TEMPLATE_MAX_LENGTH , 1 ,  template, this, EntschaedigungsartConstants.MESSAGE_KEY_ENTSCHAEDIGUNGSART_TEMPLATE_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(kriteriumEinsatzfunktion, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZFUNKTION_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.KRITERIUM_EINSATZFUNKTION_MAX_LENGTH , 1 ,  kriteriumEinsatzfunktion, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZFUNKTION_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(kriteriumEinsatzort, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZORT_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.KRITERIUM_EINSATZORT_MAX_LENGTH , 1 ,  kriteriumEinsatzort, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_EINSATZORT_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(kriteriumPersonendatenArt, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_PERSONENDATEN_ART_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.KRITERIUM_PERSONENDATEN_ART_MAX_LENGTH , 1 ,  kriteriumPersonendatenArt, this, EntschaedigungsartConstants.MESSAGE_KEY_KRITERIUM_PERSONENDATEN_ART_EINZAHL, validationResult);
                                                           de.ivu.elect.jee.entity.EntityConstraintCheck.checkNotNull(waehrungAlsIsoCode, this, EntschaedigungsartConstants.MESSAGE_KEY_WAEHRUNG_EINZAHL, validationResult);
                                                                          de.ivu.elect.jee.entity.EntityConstraintCheck.checkStringLength(EntschaedigungsartConstants.WAEHRUNG_MAX_LENGTH , 1 ,  waehrungAlsIsoCode, this, EntschaedigungsartConstants.MESSAGE_KEY_WAEHRUNG_EINZAHL, validationResult);
                                    }
             return validationResult;
        }

            
        @javax.persistence.Transient
        protected transient java.util.Map<String, Object> transientContext;

        @Override
        public java.util.Map<String, Object> getTransientContext() {
          if (transientContext == null) {
             transientContext = new java.util.HashMap<>();
          }
        return transientContext;

        }
                              }
