-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: lazy loading problem with transitive persistence
PostPosted: Mon Jul 12, 2010 8:19 am 
Newbie

Joined: Mon Nov 30, 2009 2:19 pm
Posts: 7
hello!

I have got an object model, which makes use of transitive persistence for some relations. When I do an session.refresh( object) for one instance of the model, I get an collection lazy loading exception. This did not happen before I introduced the cascade annotations into the model.

Interestingly the exceptions complains about no session or closed session, but when I check for the session status 2 lines of code before, the session is connected and open (Edit: you can see this in the attached log):

Edit: I forgott to mention: I have tried allready to set the @OneToMany allready to FethType.EAGER, but then the exception occurs allready when I show the EfzgAntrag objects in a TableViewer in my JFace View. Actually, I do not know exactly which getters are called there in the TableViewer internally, but only the EfzgDienstgeber should be touched, not the EfzgAnsprechpartner, which causes the exception

The code:
Code:
      log.info("Rückgängig Action.");

      EfzgAntrag antrag = (EfzgAntrag) antragObservableValue.getValue();
      Session session = SessionFactoryFactory.getInstance()
            .getCurrentSession();

      log.trace("Session is connected: " + session.isConnected()
            + " and open: " + session.isOpen());

      // zurücksetzen. transitive objekte werden mit zurückgesetzt.
      if (session.contains(antrag)) {
         session.refresh(antrag);
         antrag.resetPropertyChangeStatus();
      }


The exceptions happens in the session.refresh(antrag) line.

The log:
Quote:
2010-07-12 14:04:16,077 INFO [main] at.vaeb.efzg.gui.main.actions.RueckgaengigAction: Rückgängig Action.
2010-07-12 14:04:16,077 TRACE [main] at.vaeb.efzg.gui.main.actions.RueckgaengigAction: Session is connected: true and open: true
2010-07-12 14:04:38,345 ERROR [main] org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:119)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:162)
at java.util.AbstractSet.equals(AbstractSet.java:75)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:430)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:273)
at at.vaeb.efzg.model.PropertyChangeSupporter.firePropertyChange(PropertyChangeSupporter.java:55)
at at.vaeb.efzg.model.EfzgDienstgeber.setEfzgDgAnsprechpartners(EfzgDienstgeber.java:183)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:66)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:231)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3824)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:153)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:898)
at org.hibernate.loader.Loader.doQuery(Loader.java:773)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1933)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3270)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:151)
at org.hibernate.impl.SessionImpl.fireRefresh(SessionImpl.java:1117)
at org.hibernate.impl.SessionImpl.refresh(SessionImpl.java:1100)
at org.hibernate.engine.CascadingAction$3.cascade(CascadingAction.java:203)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:127)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:62)
at org.hibernate.impl.SessionImpl.fireRefresh(SessionImpl.java:1108)
at org.hibernate.impl.SessionImpl.refresh(SessionImpl.java:1088)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
at $Proxy24.refresh(Unknown Source)
at at.vaeb.efzg.gui.main.actions.RueckgaengigAction.run(RueckgaengigAction.java:46)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$4.handleEvent(ActionContributionItem.java:384)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at at.vaeb.efzg.gui.main.GuiMain$11.run(GuiMain.java:1808)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at at.vaeb.efzg.gui.main.GuiMain.main(GuiMain.java:1800)
org.hibernate.PropertyAccessException: Exception occurred inside setter of at.vaeb.efzg.model.EfzgDienstgeber.efzgDgAnsprechpartners
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:89)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:231)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3824)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:153)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:898)
at org.hibernate.loader.Loader.doQuery(Loader.java:773)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1933)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3270)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:151)
at org.hibernate.impl.SessionImpl.fireRefresh(SessionImpl.java:1117)
at org.hibernate.impl.SessionImpl.refresh(SessionImpl.java:1100)
at org.hibernate.engine.CascadingAction$3.cascade(CascadingAction.java:203)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:127)
at org.hibernate.event.def.DefaultRefreshEventListener.onRefresh(DefaultRefreshEventListener.java:62)
at org.hibernate.impl.SessionImpl.fireRefresh(SessionImpl.java:1108)
at org.hibernate.impl.SessionImpl.refresh(SessionImpl.java:1088)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
at $Proxy24.refresh(Unknown Source)
at at.vaeb.efzg.gui.main.actions.RueckgaengigAction.run(RueckgaengigAction.java:46)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$4.handleEvent(ActionContributionItem.java:384)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at at.vaeb.efzg.gui.main.GuiMain$11.run(GuiMain.java:1808)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at at.vaeb.efzg.gui.main.GuiMain.main(GuiMain.java:1800)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:66)
... 43 more
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:119)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:162)
at java.util.AbstractSet.equals(AbstractSet.java:75)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:430)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:273)
at at.vaeb.efzg.model.PropertyChangeSupporter.firePropertyChange(PropertyChangeSupporter.java:55)
at at.vaeb.efzg.model.EfzgDienstgeber.setEfzgDgAnsprechpartners(EfzgDienstgeber.java:183)
... 48 more


The annotated model classes:
Code:
package at.vaeb.efzg.model;

// Generated 10.05.2010 17:23:05 by Hibernate Tools 3.2.4.GA

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.joda.time.DateTime;
import org.joda.time.Days;

/**
* EfzgAntrag generated by hbm2java
*/
@Entity
@SuppressWarnings("serial")
@Table(name = "efzg_antrag")
public class EfzgAntrag extends PropertyChangeSupporter implements
      java.io.Serializable, Cloneable {

   @Transient
   private static final Logger log = Logger.getLogger(EfzgAntrag.class);

   private long efzgNumber;
   private Integer version;
   private EfzgDienstnehmer efzgDienstnehmer;
   private EfzgDienstgeberAnzahl efzgDienstgeberAnzahl;
   private EfzgPkHistory efzgPkHistory;
   private EfzgDienstgeber efzgDienstgeber;
   private EfzgBank efzgBank;
   private EfzgDgAnsprechpartner efzgDgAnsprechpartner;
   private Date angelegtAm;
   private String bearbeiterUv;
   private String bearbeiterRd;
   private Date unfalltag;
   private TripleState verkehrsunfall;
   private TripleState fremdverschulden;
   private Date arbverhBeginn;
   private Date arbverhEnde;
   private Date entgeltfortbezahltVon;
   private Date entgeltfortbezahltBis;
   private Date weitereentgeltVon;
   private Date weitereentgeltBis;
   private BigDecimal dgBruttobetrag;
   private String bevollVorname;
   private String bevollNachname;
   private String bevollEmail;
   private String bevollTelNr;
   private String uvZahl;
   private BigDecimal ausbezBetrag;
   private BigDecimal regressUvBetrag;
   private BigDecimal regressSonstBetrag;
   private Date verstaendigungDat;
   private Date ablehnungDat;
   private String begruendung;
   private Long kontonummer;
   private String berechefzArbang;
   private String berechefzJahr;
   private String krankheitUnfall;
   private Date antragVom;
   private Boolean laufvormerk;
   private Integer bescheidbegruendung;
   private Integer sonderzahlung;
   private Boolean rdErledigt;
   private Boolean gesperrt;
   private Boolean abgeschlossen;
   private Set<EfzgErgprufAntrag> efzgErgprufAntrags = new HashSet<EfzgErgprufAntrag>(
         0);
   private Set<EfzgAnzahlEfzgTage> efzgAnzahlEfzgTages = new HashSet<EfzgAnzahlEfzgTage>(
         0);

   /**
    * Only to be used by hibernate! Do not use yourself!
    */
   public EfzgAntrag() {
   }

   /**
    * Standard Constructor.
    *
    * @param efzgNumber
    * @param angelegtAm
    */
   public EfzgAntrag(EfzgPkHistory efzgPkHistory, Date angelegtAm) {
      this.efzgPkHistory = efzgPkHistory;
      this.angelegtAm = angelegtAm;
   }

   /**
    * Convenience Constructor.
    *
    * @param efzgNumber
    * @param efzgDienstnehmer
    * @param efzgDienstgeber
    * @param efzgBank
    * @param angelegtAm
    * @param bearbeiterUv
    * @param bearbeiterRd
    * @param ansprechpartnerNummer
    * @param unfalltag
    * @param verkehrsunfall
    * @param fremdverschulden
    * @param arbverhBeginn
    * @param arbverhEnde
    * @param entgeltfortbezahltVon
    * @param entgeltfortbezahltBis
    * @param weitereentgeltVon
    * @param weitereentgeltBis
    * @param dgBruttobetrag
    * @param bevollVorname
    * @param bevollNachname
    * @param bevollEmail
    * @param bevollTelNr
    * @param uvZahl
    * @param ausbezBetrag
    * @param regressUvBetrag
    * @param regressSonstBetrag
    * @param verstaendigungDat
    * @param ablehnungDat
    * @param begruendung
    * @param kontonummer
    * @param berechefzArbang
    * @param berechefzJahr
    * @param dgAnzahldn
    * @param dgDurchschnanzahldn
    * @param dgBegbehindert
    * @param dgLehrling
    * @param dgVersion
    * @param krankheitUnfall
    * @param antragVom
    * @param laufvormerk
    * @param bescheidbegruendung
    * @param sonderzahlung
    * @param rdErledigt
    * @param gesperrt
    * @param abgeschlossen
    * @param efzgErgprufAntrags
    * @param efzgAnzahlEfzgTages
    */
   public EfzgAntrag(EfzgPkHistory efzgPkHistory,
         EfzgDienstgeberAnzahl efzgDienstgeberAnzahl,
         EfzgDienstnehmer efzgDienstnehmer, EfzgDienstgeber efzgDienstgeber,
         EfzgBank efzgBank, EfzgDgAnsprechpartner efzgDgAnsprechpartner,
         Date angelegtAm, String bearbeiterUv, String bearbeiterRd,
         Date unfalltag, TripleState verkehrsunfall,
         TripleState fremdverschulden, Date arbverhBeginn, Date arbverhEnde,
         Date entgeltfortbezahltVon, Date entgeltfortbezahltBis,
         Date weitereentgeltVon, Date weitereentgeltBis,
         BigDecimal dgBruttobetrag, String bevollVorname,
         String bevollNachname, String bevollEmail, String bevollTelNr,
         String uvZahl, BigDecimal ausbezBetrag, BigDecimal regressUvBetrag,
         BigDecimal regressSonstBetrag, Date verstaendigungDat,
         Date ablehnungDat, String begruendung, Long kontonummer,
         String berechefzArbang, String berechefzJahr,
         String krankheitUnfall, Date antragVom, Boolean laufvormerk,
         Integer bescheidbegruendung, Integer sonderzahlung,
         Boolean rdErledigt, Boolean gesperrt, Boolean abgeschlossen,
         Set<EfzgErgprufAntrag> efzgErgprufAntrags,
         Set<EfzgAnzahlEfzgTage> efzgAnzahlEfzgTages) {
      this.efzgPkHistory = efzgPkHistory;
      this.efzgDienstgeberAnzahl = efzgDienstgeberAnzahl;
      this.efzgDienstnehmer = efzgDienstnehmer;
      this.efzgDienstgeber = efzgDienstgeber;
      this.efzgBank = efzgBank;
      this.efzgDgAnsprechpartner = efzgDgAnsprechpartner;
      this.angelegtAm = angelegtAm;
      this.bearbeiterUv = bearbeiterUv;
      this.bearbeiterRd = bearbeiterRd;
      this.unfalltag = unfalltag;
      this.verkehrsunfall = verkehrsunfall;
      this.fremdverschulden = fremdverschulden;
      this.arbverhBeginn = arbverhBeginn;
      this.arbverhEnde = arbverhEnde;
      this.entgeltfortbezahltVon = entgeltfortbezahltVon;
      this.entgeltfortbezahltBis = entgeltfortbezahltBis;
      this.weitereentgeltVon = weitereentgeltVon;
      this.weitereentgeltBis = weitereentgeltBis;
      this.dgBruttobetrag = dgBruttobetrag;
      this.bevollVorname = bevollVorname;
      this.bevollNachname = bevollNachname;
      this.bevollEmail = bevollEmail;
      this.bevollTelNr = bevollTelNr;
      this.uvZahl = uvZahl;
      this.ausbezBetrag = ausbezBetrag;
      this.regressUvBetrag = regressUvBetrag;
      this.regressSonstBetrag = regressSonstBetrag;
      this.verstaendigungDat = verstaendigungDat;
      this.ablehnungDat = ablehnungDat;
      this.begruendung = begruendung;
      this.kontonummer = kontonummer;
      this.berechefzArbang = berechefzArbang;
      this.berechefzJahr = berechefzJahr;
      this.krankheitUnfall = krankheitUnfall;
      this.antragVom = antragVom;
      this.laufvormerk = laufvormerk;
      this.bescheidbegruendung = bescheidbegruendung;
      this.sonderzahlung = sonderzahlung;
      this.rdErledigt = rdErledigt;
      this.gesperrt = gesperrt;
      this.abgeschlossen = abgeschlossen;
      this.efzgErgprufAntrags = efzgErgprufAntrags;
      this.efzgAnzahlEfzgTages = efzgAnzahlEfzgTages;
   }

   @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "efzgPkHistory"))
   @Id
   @GeneratedValue(generator = "generator")
   @Column(name = "efzg_number", unique = true, nullable = false)
   public long getEfzgNumber() {
      return this.efzgNumber;
   }

   public void setEfzgNumber(long efzgNumber) {
      Object oldValue = getEfzgNumber();
      Object newValue = efzgNumber;
      this.efzgNumber = efzgNumber;
      firePropertyChange("efzgNumber", oldValue, newValue);
   }

   @Version
   @Column(name = "version")
   public Integer getVersion() {
      return this.version;
   }

   public void setVersion(Integer version) {
      this.version = version;
   }

   @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH,
         CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
   @JoinColumns( {
         @JoinColumn(name = "dn_versnr", referencedColumnName = "dn_versnr"),
         @JoinColumn(name = "dn_gebdat", referencedColumnName = "dn_gebdat") })
   public EfzgDienstnehmer getEfzgDienstnehmer() {
      return this.efzgDienstnehmer;
   }

   public void setEfzgDienstnehmer(EfzgDienstnehmer efzgDienstnehmer) {
      Object oldValue = getEfzgDienstnehmer();
      Object newValue = efzgDienstnehmer;
      this.efzgDienstnehmer = efzgDienstnehmer;
      firePropertyChange("efzgDienstnehmer", oldValue, newValue);
   }

   @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH,
         CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
   @JoinColumns( {
         @JoinColumn(name = "dg_kontonummer", referencedColumnName = "dg_kontonummer"),
         @JoinColumn(name = "dg_version", referencedColumnName = "dg_version") })
   public EfzgDienstgeberAnzahl getEfzgDienstgeberAnzahl() {
      return this.efzgDienstgeberAnzahl;
   }

   public void setEfzgDienstgeberAnzahl(
         EfzgDienstgeberAnzahl efzgDienstgeberAnzahl) {
      Object oldValue = getEfzgDienstgeberAnzahl();
      Object newValue = efzgDienstgeberAnzahl;
      this.efzgDienstgeberAnzahl = efzgDienstgeberAnzahl;
      firePropertyChange("efzgDienstgeberAnzahl", oldValue, newValue);
   }

   @OneToOne(fetch = FetchType.LAZY, cascade = { CascadeType.ALL })
   @PrimaryKeyJoinColumn
   public EfzgPkHistory getEfzgPkHistory() {
      return this.efzgPkHistory;
   }

   public void setEfzgPkHistory(EfzgPkHistory efzgPkHistory) {
      this.efzgPkHistory = efzgPkHistory;
   }

   @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH,
         CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
   @JoinColumn(name = "dg_kontonummer", insertable = false, updatable = false)
   public EfzgDienstgeber getEfzgDienstgeber() {
      return this.efzgDienstgeber;
   }

   public void setEfzgDienstgeber(EfzgDienstgeber efzgDienstgeber) {
      Object oldValue = getEfzgDienstgeber();
      Object newValue = efzgDienstgeber;
      this.efzgDienstgeber = efzgDienstgeber;
      firePropertyChange("efzgDienstgeber", oldValue, newValue);
   }

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "bank_blz")
   public EfzgBank getEfzgBank() {
      return this.efzgBank;
   }

   public void setEfzgBank(EfzgBank efzgBank) {
      Object oldValue = getEfzgBank();
      Object newValue = efzgBank;
      this.efzgBank = efzgBank;
      firePropertyChange("efzgBank", oldValue, newValue);
   }

   @ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH,
         CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH })
   @JoinColumn(name = "ansprechpartner_nummer")
   public EfzgDgAnsprechpartner getEfzgDgAnsprechpartner() {
      return this.efzgDgAnsprechpartner;
   }

   public void setEfzgDgAnsprechpartner(
         EfzgDgAnsprechpartner efzgDgAnsprechpartner) {
      Object oldValue = getEfzgDgAnsprechpartner();
      Object newValue = efzgDgAnsprechpartner;
      this.efzgDgAnsprechpartner = efzgDgAnsprechpartner;
      firePropertyChange("efzgDgAnsprechpartner", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "angelegt_am", nullable = false, length = 13)
   public Date getAngelegtAm() {
      return this.angelegtAm;
   }

   public void setAngelegtAm(Date angelegtAm) {
      Object oldValue = getAngelegtAm();
      Object newValue = angelegtAm;
      this.angelegtAm = angelegtAm;
      firePropertyChange("angelegtAm", oldValue, newValue);
   }

   @Column(name = "bearbeiter_uv", length = 50)
   public String getBearbeiterUv() {
      return this.bearbeiterUv;
   }

   public void setBearbeiterUv(String bearbeiterUv) {
      Object oldValue = getBearbeiterUv();
      Object newValue = bearbeiterUv;
      this.bearbeiterUv = bearbeiterUv;
      firePropertyChange("bearbeiterUv", oldValue, newValue);
   }

   @Column(name = "bearbeiter_rd", length = 50)
   public String getBearbeiterRd() {
      return this.bearbeiterRd;
   }

   public void setBearbeiterRd(String bearbeiterRd) {
      Object oldValue = getBearbeiterRd();
      Object newValue = bearbeiterRd;
      this.bearbeiterRd = bearbeiterRd;
      firePropertyChange("bearbeiterRd", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "unfalltag", length = 13)
   public Date getUnfalltag() {
      return this.unfalltag;
   }

   public void setUnfalltag(Date unfalltag) {
      Object oldValue = getUnfalltag();
      Object newValue = unfalltag;
      this.unfalltag = unfalltag;
      firePropertyChange("unfalltag", oldValue, newValue);
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "verkehrsunfall", length = 12)
   public TripleState getVerkehrsunfall() {
      return this.verkehrsunfall;
   }

   public void setVerkehrsunfall(TripleState verkehrsunfall) {
      Object oldValue = getVerkehrsunfall();
      Object newValue = verkehrsunfall;
      this.verkehrsunfall = verkehrsunfall;
      firePropertyChange("verkehrsunfall", oldValue, newValue);
   }

   @Enumerated(EnumType.STRING)
   @Column(name = "fremdverschulden", length = 12)
   public TripleState getFremdverschulden() {
      return this.fremdverschulden;
   }

   public void setFremdverschulden(TripleState fremdverschulden) {
      Object oldValue = getFremdverschulden();
      Object newValue = fremdverschulden;
      this.fremdverschulden = fremdverschulden;
      firePropertyChange("fremdverschulden", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "arbverh_beginn", length = 13)
   public Date getArbverhBeginn() {
      return this.arbverhBeginn;
   }

   public void setArbverhBeginn(Date arbverhBeginn) {
      Object oldValue = getArbverhBeginn();
      Object newValue = arbverhBeginn;
      this.arbverhBeginn = arbverhBeginn;
      firePropertyChange("arbverhBeginn", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "arbverh_ende", length = 13)
   public Date getArbverhEnde() {
      return this.arbverhEnde;
   }

   public void setArbverhEnde(Date arbverhEnde) {
      Object oldValue = getArbverhEnde();
      Object newValue = arbverhEnde;
      this.arbverhEnde = arbverhEnde;
      firePropertyChange("arbverhEnde", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "entgeltfortbezahlt_von", length = 13)
   public Date getEntgeltfortbezahltVon() {
      return this.entgeltfortbezahltVon;
   }

   public void setEntgeltfortbezahltVon(Date entgeltfortbezahltVon) {
      Object oldValue = getEntgeltfortbezahltVon();
      Object newValue = entgeltfortbezahltVon;
      this.entgeltfortbezahltVon = entgeltfortbezahltVon;
      firePropertyChange("entgeltfortbezahltVon", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "entgeltfortbezahlt_bis", length = 13)
   public Date getEntgeltfortbezahltBis() {
      return this.entgeltfortbezahltBis;
   }

   public void setEntgeltfortbezahltBis(Date entgeltfortbezahltBis) {
      Object oldValue = getEntgeltfortbezahltBis();
      Object newValue = entgeltfortbezahltBis;
      this.entgeltfortbezahltBis = entgeltfortbezahltBis;
      firePropertyChange("entgeltfortbezahltBis", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "weitereentgelt_von", length = 13)
   public Date getWeitereentgeltVon() {
      return this.weitereentgeltVon;
   }

   public void setWeitereentgeltVon(Date weitereentgeltVon) {
      Object oldValue = getWeitereentgeltVon();
      Object newValue = weitereentgeltVon;
      this.weitereentgeltVon = weitereentgeltVon;
      firePropertyChange("weitereentgeltVon", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "weitereentgelt_bis", length = 13)
   public Date getWeitereentgeltBis() {
      return this.weitereentgeltBis;
   }

   public void setWeitereentgeltBis(Date weitereentgeltBis) {
      Object oldValue = getWeitereentgeltBis();
      Object newValue = weitereentgeltBis;
      this.weitereentgeltBis = weitereentgeltBis;
      firePropertyChange("weitereentgeltBis", oldValue, newValue);
   }

   @Column(name = "dg_bruttobetrag", precision = 7)
   public BigDecimal getDgBruttobetrag() {
      return this.dgBruttobetrag;
   }

   public void setDgBruttobetrag(BigDecimal dgBruttobetrag) {
      Object oldValue = getDgBruttobetrag();
      Object newValue = dgBruttobetrag;
      this.dgBruttobetrag = dgBruttobetrag;
      firePropertyChange("dgBruttobetrag", oldValue, newValue);
   }

   @Column(name = "bevoll_vorname", length = 50)
   public String getBevollVorname() {
      return this.bevollVorname;
   }

   public void setBevollVorname(String bevollVorname) {
      Object oldValue = getBevollVorname();
      Object newValue = bevollVorname;
      this.bevollVorname = bevollVorname;
      firePropertyChange("bevollVorname", oldValue, newValue);
   }

   @Column(name = "bevoll_nachname", length = 50)
   public String getBevollNachname() {
      return this.bevollNachname;
   }

   public void setBevollNachname(String bevollNachname) {
      Object oldValue = getBevollNachname();
      Object newValue = bevollNachname;
      this.bevollNachname = bevollNachname;
      firePropertyChange("bevollNachname", oldValue, newValue);
   }

   @Column(name = "bevoll_email", length = 50)
   public String getBevollEmail() {
      return this.bevollEmail;
   }

   public void setBevollEmail(String bevollEmail) {
      Object oldValue = getBevollEmail();
      Object newValue = bevollEmail;
      this.bevollEmail = bevollEmail;
      firePropertyChange("bevollEmail", oldValue, newValue);
   }

   @Column(name = "bevoll_tel_nr", length = 25)
   public String getBevollTelNr() {
      return this.bevollTelNr;
   }

   public void setBevollTelNr(String bevollTelNr) {
      Object oldValue = getBevollTelNr();
      Object newValue = bevollTelNr;
      this.bevollTelNr = bevollTelNr;
      firePropertyChange("bevollTelNr", oldValue, newValue);
   }

   @Column(name = "uv_zahl", length = 20)
   public String getUvZahl() {
      return this.uvZahl;
   }

   public void setUvZahl(String uvZahl) {
      Object oldValue = getUvZahl();
      Object newValue = uvZahl;
      this.uvZahl = uvZahl;
      firePropertyChange("uvZahl", oldValue, newValue);
   }

   @Column(name = "ausbez_betrag", precision = 7)
   public BigDecimal getAusbezBetrag() {
      return this.ausbezBetrag;
   }

   public void setAusbezBetrag(BigDecimal ausbezBetrag) {
      Object oldValue = getAusbezBetrag();
      Object newValue = ausbezBetrag;
      this.ausbezBetrag = ausbezBetrag;
      firePropertyChange("ausbezBetrag", oldValue, newValue);
   }

   @Column(name = "regress_uv_betrag", precision = 7)
   public BigDecimal getRegressUvBetrag() {
      return this.regressUvBetrag;
   }

   public void setRegressUvBetrag(BigDecimal regressUvBetrag) {
      Object oldValue = getRegressUvBetrag();
      Object newValue = regressUvBetrag;
      this.regressUvBetrag = regressUvBetrag;
      firePropertyChange("regressUvBetrag", oldValue, newValue);
   }

   @Column(name = "regress_sonst_betrag", precision = 7)
   public BigDecimal getRegressSonstBetrag() {
      return this.regressSonstBetrag;
   }

   public void setRegressSonstBetrag(BigDecimal regressSonstBetrag) {
      Object oldValue = getRegressSonstBetrag();
      Object newValue = regressSonstBetrag;
      this.regressSonstBetrag = regressSonstBetrag;
      firePropertyChange("regressSonstBetrag", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "verstaendigung_dat", length = 13)
   public Date getVerstaendigungDat() {
      return this.verstaendigungDat;
   }

   public void setVerstaendigungDat(Date verstaendigungDat) {
      Object oldValue = getVerstaendigungDat();
      Object newValue = verstaendigungDat;
      this.verstaendigungDat = verstaendigungDat;
      firePropertyChange("verstaendigungDat", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "ablehnung_dat", length = 13)
   public Date getAblehnungDat() {
      return this.ablehnungDat;
   }

   public void setAblehnungDat(Date ablehnungDat) {
      Object oldValue = getAblehnungDat();
      Object newValue = ablehnungDat;
      this.ablehnungDat = ablehnungDat;
      firePropertyChange("ablehnungDat", oldValue, newValue);
   }

   @Column(name = "begruendung", length = 4000)
   public String getBegruendung() {
      return this.begruendung;
   }

   public void setBegruendung(String begruendung) {
      Object oldValue = getBegruendung();
      Object newValue = begruendung;
      this.begruendung = begruendung;
      firePropertyChange("begruendung", oldValue, newValue);
   }

   @Column(name = "kontonummer")
   public Long getKontonummer() {
      return this.kontonummer;
   }

   public void setKontonummer(Long kontonummer) {
      Object oldValue = getKontonummer();
      Object newValue = kontonummer;
      this.kontonummer = kontonummer;
      firePropertyChange("kontonummer", oldValue, newValue);
   }

   @Column(name = "berechefz_arbang", length = 12)
   public String getBerechefzArbang() {
      return this.berechefzArbang;
   }

   public void setBerechefzArbang(String berechefzArbang) {
      Object oldValue = getBerechefzArbang();
      Object newValue = berechefzArbang;
      this.berechefzArbang = berechefzArbang;
      firePropertyChange("berechefzArbang", oldValue, newValue);
   }

   @Column(name = "berechefz_jahr", length = 12)
   public String getBerechefzJahr() {
      return this.berechefzJahr;
   }

   public void setBerechefzJahr(String berechefzJahr) {
      Object oldValue = getBerechefzJahr();
      Object newValue = berechefzJahr;
      this.berechefzJahr = berechefzJahr;
      firePropertyChange("berechefzJahr", oldValue, newValue);
   }

   @Column(name = "krankheit_unfall", length = 1)
   public String getKrankheitUnfall() {
      return this.krankheitUnfall;
   }

   public void setKrankheitUnfall(String krankheitUnfall) {
      Object oldValue = getKrankheitUnfall();
      Object newValue = krankheitUnfall;
      this.krankheitUnfall = krankheitUnfall;
      firePropertyChange("krankheitUnfall", oldValue, newValue);
   }

   @Temporal(TemporalType.DATE)
   @Column(name = "antrag_vom", length = 13)
   public Date getAntragVom() {
      return this.antragVom;
   }

   public void setAntragVom(Date antragVom) {
      Object oldValue = getAntragVom();
      Object newValue = antragVom;
      this.antragVom = antragVom;
      firePropertyChange("antragVom", oldValue, newValue);
   }

   @Column(name = "laufvormerk")
   public Boolean getLaufvormerk() {
      return this.laufvormerk;
   }

   public void setLaufvormerk(Boolean laufvormerk) {
      Object oldValue = getLaufvormerk();
      Object newValue = laufvormerk;
      this.laufvormerk = laufvormerk;
      firePropertyChange("laufvormerk", oldValue, newValue);
   }

   @Column(name = "bescheidbegruendung")
   public Integer getBescheidbegruendung() {
      return this.bescheidbegruendung;
   }

   public void setBescheidbegruendung(Integer bescheidbegruendung) {
      Object oldValue = getBescheidbegruendung();
      Object newValue = bescheidbegruendung;
      this.bescheidbegruendung = bescheidbegruendung;
      firePropertyChange("bescheidbegruendung", oldValue, newValue);
   }

   @Column(name = "sonderzahlung")
   public Integer getSonderzahlung() {
      return this.sonderzahlung;
   }

   public void setSonderzahlung(Integer sonderzahlung) {
      Object oldValue = getSonderzahlung();
      Object newValue = sonderzahlung;
      this.sonderzahlung = sonderzahlung;
      firePropertyChange("sonderzahlung", oldValue, newValue);
   }

   @Column(name = "rd_erledigt")
   public Boolean getRdErledigt() {
      return this.rdErledigt;
   }

   public void setRdErledigt(Boolean rdErledigt) {
      Object oldValue = getRdErledigt();
      Object newValue = rdErledigt;
      this.rdErledigt = rdErledigt;
      firePropertyChange("rdErledigt", oldValue, newValue);
   }

   @Column(name = "gesperrt")
   public Boolean getGesperrt() {
      return this.gesperrt;
   }

   public void setGesperrt(Boolean gesperrt) {
      Object oldValue = getGesperrt();
      Object newValue = gesperrt;
      this.gesperrt = gesperrt;
      firePropertyChange("gesperrt", oldValue, newValue);
   }

   @Column(name = "abgeschlossen")
   public Boolean getAbgeschlossen() {
      return this.abgeschlossen;
   }

   public void setAbgeschlossen(Boolean abgeschlossen) {
      Object oldValue = getAbgeschlossen();
      Object newValue = abgeschlossen;
      this.abgeschlossen = abgeschlossen;
      firePropertyChange("abgeschlossen", oldValue, newValue);
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "efzgAntrag", cascade = CascadeType.ALL)
   public Set<EfzgErgprufAntrag> getEfzgErgprufAntrags() {
      return this.efzgErgprufAntrags;
   }

   public void setEfzgErgprufAntrags(Set<EfzgErgprufAntrag> efzgErgprufAntrags) {
      Object oldValue = getEfzgErgprufAntrags();
      Object newValue = efzgErgprufAntrags;
      this.efzgErgprufAntrags = efzgErgprufAntrags;
      firePropertyChange("efzgErgprufAntrags", oldValue, newValue);
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "efzgAntrag")
   public Set<EfzgAnzahlEfzgTage> getEfzgAnzahlEfzgTages() {
      return this.efzgAnzahlEfzgTages;
   }

   public void setEfzgAnzahlEfzgTages(
         Set<EfzgAnzahlEfzgTage> efzgAnzahlEfzgTages) {
      this.efzgAnzahlEfzgTages = efzgAnzahlEfzgTages;
   }

   @Override
   public String toString() {
      ToStringBuilder tsb = new ToStringBuilder(this);
      tsb.append("propertyChanged", isPropertyChanged());
      tsb.append("efzgNumber", getEfzgNumber());
      tsb.append("efzgDienstgeber", getEfzgDienstgeber());
      tsb.append("efzgDienstnehmer", getEfzgDienstnehmer());
      if (log.isTraceEnabled()) {
         // TODO trace toString erweitern.
      }
      return tsb.toString();
   }

   @Transient
   public int getDauer() {

      // TODO richtige berechnung abklären.

      Date beginDate = getEntgeltfortbezahltVon();
      Date endDate = getEntgeltfortbezahltBis();
      if (beginDate == null || endDate == null)
         return 0;

      DateTime begin = new DateTime(beginDate);
      DateTime ende = new DateTime(endDate);

      Days standardDays = Days.daysBetween(begin, ende);
      return standardDays.getDays();
   }

   @Override
   public Object clone() throws CloneNotSupportedException {
      EfzgAntrag clone = new EfzgAntrag(
            this.getEfzgPkHistory(),
            this.getEfzgDienstgeberAnzahl(),
            this.getEfzgDienstnehmer(),
            this.getEfzgDienstgeber(),
            this.getEfzgBank(),
            (EfzgDgAnsprechpartner) (this.getEfzgDgAnsprechpartner() != null ? this
                  .getEfzgDgAnsprechpartner().clone()
                  : null), this.getAngelegtAm(), this.getBearbeiterUv(),
            this.getBearbeiterRd(), this.getUnfalltag(), this
                  .getVerkehrsunfall(), this.getFremdverschulden(), this
                  .getArbverhBeginn(), this.getArbverhEnde(), this
                  .getEntgeltfortbezahltVon(), this
                  .getEntgeltfortbezahltBis(), this
                  .getWeitereentgeltVon(), this.getWeitereentgeltBis(),
            this.getDgBruttobetrag(), this.getBevollVorname(), this
                  .getBevollNachname(), this.getBevollEmail(), this
                  .getBevollTelNr(), this.getUvZahl(), this
                  .getAusbezBetrag(), this.getRegressUvBetrag(), this
                  .getRegressSonstBetrag(), this.getVerstaendigungDat(),
            this.getAblehnungDat(), this.getBegruendung(), this
                  .getKontonummer(), this.getBerechefzArbang(), this
                  .getBerechefzJahr(), this.getKrankheitUnfall(), this
                  .getAntragVom(), this.getLaufvormerk(), this
                  .getBescheidbegruendung(), this.getSonderzahlung(),
            this.getRdErledigt(), this.getGesperrt(), this
                  .getAbgeschlossen(), this.getEfzgErgprufAntrags(), this
                  .getEfzgAnzahlEfzgTages());
      return clone;
   }
}

Code:
package at.vaeb.efzg.model;

// Generated 10.05.2010 17:23:05 by Hibernate Tools 3.2.4.GA

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Version;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;

/**
* EfzgDienstgeber generated by hbm2java
*/
@SuppressWarnings("serial")
@Entity
@Table(name = "efzg_dienstgeber")
public class EfzgDienstgeber extends PropertyChangeSupporter implements
      java.io.Serializable {

   @Transient
   private static final Logger log = Logger.getLogger(EfzgDienstgeber.class);

   private long dgKontonummer;
   private Integer version;
   private String dgFirma;
   private String dgAdresse;
   private Integer dgPlz;
   private String dgTelefon;
   private String dgFax;
   private String dgOrt;
   private Set<EfzgDgAnsprechpartner> efzgDgAnsprechpartners = new HashSet<EfzgDgAnsprechpartner>(
         0);
   private Set<EfzgDienstgeberAnzahl> efzgDienstgeberAnzahls = new HashSet<EfzgDienstgeberAnzahl>(
         0);
   private Set<EfzgAntrag> efzgAntrags = new HashSet<EfzgAntrag>(0);

   public EfzgDienstgeber() {
   }

   public EfzgDienstgeber(long dgKontonummer) {
      this.dgKontonummer = dgKontonummer;
   }

   public EfzgDienstgeber(long dgKontonummer, String dgFirma,
         String dgAdresse, Integer dgPlz, String dgTelefon, String dgFax,
         String dgOrt, Set<EfzgDgAnsprechpartner> efzgDgAnsprechpartners,
         Set<EfzgDienstgeberAnzahl> efzgDienstgeberAnzahls,
         Set<EfzgAntrag> efzgAntrags) {
      this.dgKontonummer = dgKontonummer;
      this.dgFirma = dgFirma;
      this.dgAdresse = dgAdresse;
      this.dgPlz = dgPlz;
      this.dgTelefon = dgTelefon;
      this.dgFax = dgFax;
      this.dgOrt = dgOrt;
      this.efzgDgAnsprechpartners = efzgDgAnsprechpartners;
      this.efzgDienstgeberAnzahls = efzgDienstgeberAnzahls;
      this.efzgAntrags = efzgAntrags;
   }

   @Id
   @Column(name = "dg_kontonummer", unique = true, nullable = false)
   public long getDgKontonummer() {
      return this.dgKontonummer;
   }

   public void setDgKontonummer(long dgKontonummer) {
      Object oldValue = getDgKontonummer();
      Object newValue = dgKontonummer;
      this.dgKontonummer = dgKontonummer;
      firePropertyChange("dgKontonummer", oldValue, newValue);
   }

   @Version
   @Column(name = "version", nullable = false)
   public Integer getVersion() {
      return this.version;
   }

   public void setVersion(Integer version) {
      Object oldValue = getVersion();
      Object newValue = version;
      this.version = version;
      firePropertyChange("version", oldValue, newValue);
   }

   @Column(name = "dg_firma", length = 250)
   public String getDgFirma() {
      return this.dgFirma;
   }

   public void setDgFirma(String dgFirma) {
      Object oldValue = getDgFirma();
      Object newValue = dgFirma;
      this.dgFirma = dgFirma;
      firePropertyChange("dgFirma", oldValue, newValue);
   }

   @Column(name = "dg_adresse", length = 250)
   public String getDgAdresse() {
      return this.dgAdresse;
   }

   public void setDgAdresse(String dgAdresse) {
      Object oldValue = getDgAdresse();
      Object newValue = dgAdresse;
      this.dgAdresse = dgAdresse;
      firePropertyChange("dgAdresse", oldValue, newValue);
   }

   @Column(name = "dg_plz")
   public Integer getDgPlz() {
      return this.dgPlz;
   }

   public void setDgPlz(Integer dgPlz) {
      Object oldValue = getDgPlz();
      Object newValue = dgPlz;
      this.dgPlz = dgPlz;
      firePropertyChange("dgPlz", oldValue, newValue);
   }

   @Column(name = "dg_telefon", length = 50)
   public String getDgTelefon() {
      return this.dgTelefon;
   }

   public void setDgTelefon(String dgTelefon) {
      Object oldValue = getDgTelefon();
      Object newValue = dgTelefon;
      this.dgTelefon = dgTelefon;
      firePropertyChange("dgTelefon", oldValue, newValue);
   }

   @Column(name = "dg_fax", length = 50)
   public String getDgFax() {
      return this.dgFax;
   }

   public void setDgFax(String dgFax) {
      Object oldValue = getDgFax();
      Object newValue = dgFax;
      this.dgFax = dgFax;
      firePropertyChange("dgFax", oldValue, newValue);
   }

   @Column(name = "dg_ort", length = 50)
   public String getDgOrt() {
      return this.dgOrt;
   }

   public void setDgOrt(String dgOrt) {
      Object oldValue = getDgOrt();
      Object newValue = dgOrt;
      this.dgOrt = dgOrt;
      firePropertyChange("dgOrt", oldValue, newValue);
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "efzgDienstgeber", cascade = {
         CascadeType.ALL})
   public Set<EfzgDgAnsprechpartner> getEfzgDgAnsprechpartners() {
      return this.efzgDgAnsprechpartners;
   }

   public void setEfzgDgAnsprechpartners(
         Set<EfzgDgAnsprechpartner> efzgDgAnsprechpartners) {
      Object oldValue = getEfzgDgAnsprechpartners();
      Object newValue = efzgDgAnsprechpartners;
      this.efzgDgAnsprechpartners = efzgDgAnsprechpartners;
      firePropertyChange("efzgDgAnsprechpartners", oldValue, newValue);
      ArrayList<EfzgDgAnsprechpartner> list = new ArrayList<EfzgDgAnsprechpartner>(
            efzgDgAnsprechpartners);
      Collections.sort(list);
      firePropertyChange("efzgDgAnsprechpartnersAsList", oldValue, list);
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "efzgDienstgeber")
   public Set<EfzgDienstgeberAnzahl> getEfzgDienstgeberAnzahls() {
      return this.efzgDienstgeberAnzahls;
   }

   public void setEfzgDienstgeberAnzahls(
         Set<EfzgDienstgeberAnzahl> efzgDienstgeberAnzahls) {
      Object oldValue = getEfzgDienstgeberAnzahls();
      Object newValue = efzgDienstgeberAnzahls;
      this.efzgDienstgeberAnzahls = efzgDienstgeberAnzahls;
      firePropertyChange("efzgDienstgeberAnzahls", oldValue, newValue);
      ArrayList<EfzgDienstgeberAnzahl> list = new ArrayList<EfzgDienstgeberAnzahl>(
            efzgDienstgeberAnzahls);
      Collections.sort(list);
      firePropertyChange("efzgDienstgeberAnzahlsAsList", oldValue, list);
   }

   @OneToMany(fetch = FetchType.LAZY, mappedBy = "efzgDienstgeber")
   public Set<EfzgAntrag> getEfzgAntrags() {
      return this.efzgAntrags;
   }

   public void setEfzgAntrags(Set<EfzgAntrag> efzgAntrags) {
      Object oldValue = getEfzgAntrags();
      Object newValue = efzgAntrags;
      this.efzgAntrags = efzgAntrags;
      firePropertyChange("efzgAntrags", oldValue, newValue);
   }

   @Override
   public String toString() {
      ToStringBuilder tsb = new ToStringBuilder(this);
      tsb.append("dgAdresse", getDgAdresse());
      tsb.append("dgFax", getDgFax());
      tsb.append("dgFirma", getDgFirma());
      tsb.append("dgKontonummer", getDgKontonummer());
      tsb.append("dgOrt", getDgOrt());
      tsb.append("dgTelefon", getDgTelefon());
      tsb.append("dgPlz", getDgPlz());
      if (log.isTraceEnabled()) {
         tsb.append("efzgAntrags", getEfzgAntrags());
         tsb.append("efzgDgAnsprechpartners", getEfzgDgAnsprechpartners());
      }
      return tsb.toString();
   }

   @Transient
   public List<EfzgDgAnsprechpartner> getEfzgDgAnsprechpartnersAsList() {
      ArrayList<EfzgDgAnsprechpartner> list = new ArrayList<EfzgDgAnsprechpartner>(
            efzgDgAnsprechpartners);
      Collections.sort(list);
      return list;
   }

   @Transient
   public List<EfzgDienstgeberAnzahl> getEfzgDienstgeberAnzahlsAsList() {
      ArrayList<EfzgDienstgeberAnzahl> list = new ArrayList<EfzgDienstgeberAnzahl>(
            this.efzgDienstgeberAnzahls);
      Collections.sort(list);
      return list;
   }
}

Code:
package at.vaeb.efzg.model;

// Generated 10.05.2010 17:23:05 by Hibernate Tools 3.2.4.GA

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.Version;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;

/**
* EfzgDgAnsprechpartner generated by hbm2java
*/
@SuppressWarnings("serial")
@Entity
@Table(name = "efzg_dg_ansprechpartner")
public class EfzgDgAnsprechpartner extends PropertyChangeSupporter implements
      java.io.Serializable, Cloneable, Comparable<EfzgDgAnsprechpartner> {

   @Transient
   private static final Logger log = Logger
         .getLogger(EfzgDgAnsprechpartner.class);

   private long ansprechNumber;
   private Integer version;
   private EfzgDienstgeber efzgDienstgeber;
   private String ansprechVorname;
   private String ansprechNachname;
   private String ansprechTelefonklappe;
   private String ansprechMobil;
   private String ansprechEmail;

   public EfzgDgAnsprechpartner() {
   }

   public EfzgDgAnsprechpartner(long ansprechNumber,
         EfzgDienstgeber efzgDienstgeber, String ansprechNachname) {
      this.ansprechNumber = ansprechNumber;
      this.efzgDienstgeber = efzgDienstgeber;
      this.ansprechNachname = ansprechNachname;
   }

   public EfzgDgAnsprechpartner(long ansprechNumber,
         EfzgDienstgeber efzgDienstgeber, String ansprechVorname,
         String ansprechNachname, String ansprechTelefonklappe,
         String ansprechMobil, String ansprechEmail) {
      this.ansprechNumber = ansprechNumber;
      this.efzgDienstgeber = efzgDienstgeber;
      this.ansprechVorname = ansprechVorname;
      this.ansprechNachname = ansprechNachname;
      this.ansprechTelefonklappe = ansprechTelefonklappe;
      this.ansprechMobil = ansprechMobil;
      this.ansprechEmail = ansprechEmail;
   }

   @Id
   @Column(name = "ansprech_number", unique = true, nullable = false)
   public long getAnsprechNumber() {
      return this.ansprechNumber;
   }

   public void setAnsprechNumber(long ansprechNumber) {
      Object oldValue = getAnsprechNumber();
      Object newValue = ansprechNumber;
      this.ansprechNumber = ansprechNumber;
      firePropertyChange("ansprechNumber", oldValue, newValue);
   }

   @Version
   @Column(name = "version")
   public Integer getVersion() {
      return this.version;
   }

   public void setVersion(Integer version) {
      Object oldValue = getVersion();
      Object newValue = version;
      this.version = version;
      firePropertyChange("version", oldValue, newValue);
   }

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "dg_kontonummer", nullable = false)
   public EfzgDienstgeber getEfzgDienstgeber() {
      return this.efzgDienstgeber;
   }

   public void setEfzgDienstgeber(EfzgDienstgeber efzgDienstgeber) {
      Object oldValue = getEfzgDienstgeber();
      Object newValue = efzgDienstgeber;
      this.efzgDienstgeber = efzgDienstgeber;
      firePropertyChange("efzgDienstgeber", oldValue, newValue);
   }

   @Column(name = "ansprech_vorname", length = 50)
   public String getAnsprechVorname() {
      return this.ansprechVorname;
   }

   public void setAnsprechVorname(String ansprechVorname) {
      Object oldValue = getAnsprechVorname();
      Object newValue = ansprechVorname;
      this.ansprechVorname = ansprechVorname;
      firePropertyChange("ansprechVorname", oldValue, newValue);
   }

   @Column(name = "ansprech_nachname", nullable = false, length = 50)
   public String getAnsprechNachname() {
      return this.ansprechNachname;
   }

   public void setAnsprechNachname(String ansprechNachname) {
      Object oldValue = getAnsprechNachname();
      Object newValue = ansprechNachname;
      this.ansprechNachname = ansprechNachname;
      firePropertyChange("ansprechNachname", oldValue, newValue);
   }

   @Column(name = "ansprech_telefonklappe", length = 50)
   public String getAnsprechTelefonklappe() {
      return this.ansprechTelefonklappe;
   }

   public void setAnsprechTelefonklappe(String ansprechTelefonklappe) {
      Object oldValue = getAnsprechTelefonklappe();
      Object newValue = ansprechTelefonklappe;
      this.ansprechTelefonklappe = ansprechTelefonklappe;
      firePropertyChange("ansprechTelefonklappe", oldValue, newValue);
   }

   @Column(name = "ansprech_mobil", length = 50)
   public String getAnsprechMobil() {
      return this.ansprechMobil;
   }

   public void setAnsprechMobil(String ansprechMobil) {
      Object oldValue = getAnsprechMobil();
      Object newValue = ansprechMobil;
      this.ansprechMobil = ansprechMobil;
      firePropertyChange("ansprechMobil", oldValue, newValue);
   }

   @Column(name = "ansprech_email", length = 50)
   public String getAnsprechEmail() {
      return this.ansprechEmail;
   }

   public void setAnsprechEmail(String ansprechEmail) {
      Object oldValue = getAnsprechEmail();
      Object newValue = ansprechEmail;
      this.ansprechEmail = ansprechEmail;
      firePropertyChange("ansprechEmail", oldValue, newValue);
   }

   @Override
   public String toString() {
      ToStringBuilder tsb = new ToStringBuilder(this);
      tsb.append("ansprechNumber", getAnsprechNumber());
      tsb.append("ansprechNachname", getAnsprechNachname());
      tsb.append("ansprechVorname", getAnsprechVorname());
      tsb.append("ansprechTelefonklappe", getAnsprechTelefonklappe());
      tsb.append("ansprechMobil", getAnsprechMobil());
      tsb.append("ansprechEmail", getAnsprechEmail());
      if (log.isTraceEnabled())
         tsb.append("efzgDienstgeber", getEfzgDienstgeber());
      return tsb.toString();
   }

   @Override
   public Object clone() throws CloneNotSupportedException {
      super.clone();

      EfzgDgAnsprechpartner ansprechpartner = new EfzgDgAnsprechpartner(
            ansprechNumber, efzgDienstgeber, ansprechVorname,
            ansprechNachname, ansprechTelefonklappe, ansprechMobil,
            ansprechEmail);
      ansprechpartner.setVersion(version);
      return ansprechpartner;
   }

   @Override
   public int compareTo(EfzgDgAnsprechpartner o) {
      return new Long(this.getAnsprechNumber()).compareTo(new Long(o
            .getAnsprechNumber()));
   }

   @Override
   public boolean equals(Object obj) {
      if (obj == null)
         return false;//
      if (!(obj instanceof EfzgDgAnsprechpartner))
         return false;
      EfzgDgAnsprechpartner rhs = (EfzgDgAnsprechpartner) obj;
      EqualsBuilder equalsBuilder = new EqualsBuilder();
      equalsBuilder.append(this.getAnsprechNumber(), rhs.getAnsprechNumber());
      equalsBuilder.append(this.getAnsprechEmail(), rhs.getAnsprechEmail());
      equalsBuilder.append(this.getAnsprechMobil(), rhs.getAnsprechMobil());
      equalsBuilder.append(this.getAnsprechNachname(), rhs
            .getAnsprechNachname());
      equalsBuilder.append(this.getAnsprechTelefonklappe(), rhs
            .getAnsprechTelefonklappe());
      equalsBuilder.append(this.getAnsprechVorname(), rhs
            .getAnsprechVorname());
      equalsBuilder.append(this.getEfzgDienstgeber(), rhs
            .getEfzgDienstgeber());
      return equalsBuilder.isEquals();
   }
}


Thanks in advance for any help!
Greets,
Andreas


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.