title: Hibernate: More than one row with the given identifier was found error
body: <p>I'm using spring 4.0.5 and hibernate 4.3.5; I'm facing an error with hibernate and I can't figure where I'm wrong (because I'm sure I'm wrong). I have a table related with itself, it represents a web tree where each root node can have several children, so I created this class:</p>
  
  <pre><code>@DynamicUpdate
  @Cache(region = "it.eng.angelo.spring.dao.hibernate.models.WebTree", usage = CacheConcurrencyStrategy.READ_WRITE)
  @Entity
  @Table(name = "MEDIA_GALL_TREE", indexes = {@Index(name = "NOME_FOLDER_IDX", columnList = "NOME_FOLDER")})
  public class WebTree extends AbstractModel
  {
  
      private static final long serialVersionUID = -4572195412018767502L;
      private long id;
      private String text;
      private boolean opened;
      private boolean disabled;
      private boolean selected;
      private Set&lt;WebTree&gt; children = new HashSet&lt;WebTree&gt;(0);
      private Set&lt;Media&gt; media = new HashSet&lt;Media&gt;(0);
      private WebTree father;
      private WcmDomain dominio;
      public WebTree()
      {
          super();
      }
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      @Column(name = "ID_FOLDER", unique = true, nullable = false)
      public long getId()
      {
          return id;
      }
      public void setId(long id)
      {
          this.id = id;
      }
      @Column(name = "NOME_FOLDER", nullable = false, unique=false)
      public String getText()
      {
          return text;
      }
      public void setText(String text)
      {
          this.text = text;
      }
      @Column(name = "OPENED_FOLDER")
      public boolean isOpened()
      {
          return opened;
      }
      public void setOpened(boolean opened)
      {
          this.opened = opened;
      }
      @Column(name = "DISABLED_FOLDER")
      public boolean isDisabled()
      {
          return disabled;
      }
      public void setDisabled(boolean disabled)
      {
          this.disabled = disabled;
      }
      @Column(name = "SELECTED_FOLDER")
      public boolean isSelected()
      {
          return selected;
      }
      public void setSelected(boolean selected)
      {
          this.selected = selected;
      }
      @OneToMany(mappedBy = "father", orphanRemoval = true, targetEntity = WebTree.class)
      public Set&lt;WebTree&gt; getChildren()
      {
          return children;
      }
      public void setChildren(Set&lt;WebTree&gt; children)
      {
          this.children = children;
      }
      @ManyToOne(targetEntity = WebTree.class)
      @JoinColumn(name = "ID_PADRE", nullable = true)
      public WebTree getFather()
      {
          return father;
      }
      public void setFather(WebTree father)
      {
          this.father = father;
      }
      @OneToOne
      @JoinColumn(name="ID_DOMINIO", nullable=false)
      public WcmDomain getDominio()
      {
          return dominio;
      }
      public void setDominio(WcmDomain dominio)
      {
          this.dominio = dominio;
      }
      @OneToMany( mappedBy = "folder", orphanRemoval = true, targetEntity = Media.class, cascade = { CascadeType.ALL })
      public Set&lt;Media&gt; getMedia()
      {
          return media;
      }
      public void setMedia(Set&lt;Media&gt; media)
      {
          this.media = media;
      }
  
  }
  </code></pre>
  
  <p>As you can see...it's a pretty simple POJO class; now I created this unit test:</p>
  
  <pre><code>@Test
  public void testLoadModifyTree()
  {
      try
      {
          DetachedCriteria dc = DetachedCriteria.forClass(MediaGalleryTree.class);
          dc.setFetchMode("father", FetchMode.JOIN);
          dc.add(Property.forName("id").eq(4l));
          List&lt;MediaGalleryTree&gt; result = hibSvc.search(dc, IConstants.NO_PAGINATION, IConstants.NO_PAGINATION);
          for (MediaGalleryTree mediaGalleryTree : result)
          {
              logger.info(mediaGalleryTree.getId());
          }
      }
      catch (Exception e)
      {
          logger.error(e.getMessage(), e);
      }
  }
  </code></pre>
  
  <p>Well, I checked and in the DB I have only 1 record with ID 4; well when I execute this query I got the following error:</p>
  
  <pre><code>18:48:43,123 ERROR [WcmHibernateDao] Errore nella ricerca con detached criteria DetachableCriteria(CriteriaImpl(it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree:this[][id=4])); More than one row with the given identifier was found: 2, for class: it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree
  org.hibernate.HibernateException: More than one row with the given identifier was found: 2, for class: it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree
      at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:100)
      at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:161)
      at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2385)
      at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:767)
      at org.hibernate.type.EntityType.resolve(EntityType.java:505)
      at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:170)
      at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144)
      at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1114)
      at org.hibernate.loader.Loader.processResultSet(Loader.java:972)
      at org.hibernate.loader.Loader.doQuery(Loader.java:920)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
      at org.hibernate.loader.Loader.doList(Loader.java:2553)
      at org.hibernate.loader.Loader.doList(Loader.java:2539)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
      at org.hibernate.loader.Loader.list(Loader.java:2364)
      at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:126)
      at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1682)
      at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
      at it.eng.comi.spring.dao.WcmHibernateDao.searchEntity(WcmHibernateDao.java:140)
      at it.eng.comi.spring.service.impl.WcmRdbmsExtSvcImpl.search(WcmRdbmsExtSvcImpl.java:237)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      at com.sun.proxy.$Proxy45.search(Unknown Source)
      at it.eng.comi.test.ComiTests.testLoadModifyTree(ComiTests.java:578)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
      at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
      at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:233)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
      at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:176)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  18:48:43,135 ERROR [WcmRdbmsExtSvcImpl] Errore nella ricerca con deatchedCriteria DetachableCriteria(CriteriaImpl(it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree:this[][id=4])); Errore nella ricerca con detached criteria DetachableCriteria(CriteriaImpl(it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree:this[][id=4])); More than one row with the given identifier was found: 2, for class: it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree
  it.eng.comi.exception.CoMiDbException: Errore nella ricerca con detached criteria DetachableCriteria(CriteriaImpl(it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree:this[][id=4])); More than one row with the given identifier was found: 2, for class: it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree
      at it.eng.comi.spring.dao.WcmHibernateDao.searchEntity(WcmHibernateDao.java:146)
      at it.eng.comi.spring.service.impl.WcmRdbmsExtSvcImpl.search(WcmRdbmsExtSvcImpl.java:237)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      at com.sun.proxy.$Proxy45.search(Unknown Source)
      at it.eng.comi.test.ComiTests.testLoadModifyTree(ComiTests.java:578)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
      at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
      at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:233)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
      at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:176)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  Caused by: org.hibernate.HibernateException: More than one row with the given identifier was found: 2, for class: it.eng.comi.spring.dao.hibernate.models.MediaGalleryTree
      at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:100)
      at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:161)
      at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2385)
      at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:767)
      at org.hibernate.type.EntityType.resolve(EntityType.java:505)
      at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:170)
      at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144)
      at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1114)
      at org.hibernate.loader.Loader.processResultSet(Loader.java:972)
      at org.hibernate.loader.Loader.doQuery(Loader.java:920)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
      at org.hibernate.loader.Loader.doList(Loader.java:2553)
      at org.hibernate.loader.Loader.doList(Loader.java:2539)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
      at org.hibernate.loader.Loader.list(Loader.java:2364)
      at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:126)
      at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1682)
      at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
      at it.eng.comi.spring.dao.WcmHibernateDao.searchEntity(WcmHibernateDao.java:140)
      ... 43 more
  </code></pre>
  
  <p>When the code is executed, hibernate print these queries:</p>
  
  <pre><code>Hibernate: 
      select
          this_.ID_FOLDER as ID_FOLDE1_7_2_,
          this_.UT_INS as UT_INS2_7_2_,
          this_.DT_INS as DT_INS3_7_2_,
          this_.DT_UPD as DT_UPD4_7_2_,
          this_.UT_UPD as UT_UPD5_7_2_,
          this_.DISABLED_FOLDER as DISABLED6_7_2_,
          this_.ID_DOMINIO as ID_DOMI10_7_2_,
          this_.ID_PADRE as ID_PADR11_7_2_,
          this_.OPENED_FOLDER as OPENED_F7_7_2_,
          this_.SELECTED_FOLDER as SELECTED8_7_2_,
          this_.NOME_FOLDER as NOME_FOL9_7_2_,
          wcmdomain2_.ID_DOMINIO as ID_DOMIN1_8_0_,
          wcmdomain2_.UT_INS as UT_INS2_8_0_,
          wcmdomain2_.DT_INS as DT_INS3_8_0_,
          wcmdomain2_.DT_UPD as DT_UPD4_8_0_,
          wcmdomain2_.UT_UPD as UT_UPD5_8_0_,
          wcmdomain2_.WCM_NOME_DOMINIO as WCM_NOME6_8_0_,
          mediagalle3_.ID_FOLDER as ID_FOLDE1_7_1_,
          mediagalle3_.UT_INS as UT_INS2_7_1_,
          mediagalle3_.DT_INS as DT_INS3_7_1_,
          mediagalle3_.DT_UPD as DT_UPD4_7_1_,
          mediagalle3_.UT_UPD as UT_UPD5_7_1_,
          mediagalle3_.DISABLED_FOLDER as DISABLED6_7_1_,
          mediagalle3_.ID_DOMINIO as ID_DOMI10_7_1_,
          mediagalle3_.ID_PADRE as ID_PADR11_7_1_,
          mediagalle3_.OPENED_FOLDER as OPENED_F7_7_1_,
          mediagalle3_.SELECTED_FOLDER as SELECTED8_7_1_,
          mediagalle3_.NOME_FOLDER as NOME_FOL9_7_1_ 
      from
          MEDIA_GALL_TREE this_ 
      inner join
          WCM_DOMAIN wcmdomain2_ 
              on this_.ID_DOMINIO=wcmdomain2_.ID_DOMINIO 
      left outer join
          MEDIA_GALL_TREE mediagalle3_ 
              on this_.ID_PADRE=mediagalle3_.ID_FOLDER 
      where
          this_.ID_FOLDER=?
  Hibernate: 
      select
          mediagalle0_.ID_FOLDER as ID_FOLDE1_7_2_,
          mediagalle0_.UT_INS as UT_INS2_7_2_,
          mediagalle0_.DT_INS as DT_INS3_7_2_,
          mediagalle0_.DT_UPD as DT_UPD4_7_2_,
          mediagalle0_.UT_UPD as UT_UPD5_7_2_,
          mediagalle0_.DISABLED_FOLDER as DISABLED6_7_2_,
          mediagalle0_.ID_DOMINIO as ID_DOMI10_7_2_,
          mediagalle0_.ID_PADRE as ID_PADR11_7_2_,
          mediagalle0_.OPENED_FOLDER as OPENED_F7_7_2_,
          mediagalle0_.SELECTED_FOLDER as SELECTED8_7_2_,
          mediagalle0_.NOME_FOLDER as NOME_FOL9_7_2_,
          wcmdomain1_.ID_DOMINIO as ID_DOMIN1_8_0_,
          wcmdomain1_.UT_INS as UT_INS2_8_0_,
          wcmdomain1_.DT_INS as DT_INS3_8_0_,
          wcmdomain1_.DT_UPD as DT_UPD4_8_0_,
          wcmdomain1_.UT_UPD as UT_UPD5_8_0_,
          wcmdomain1_.WCM_NOME_DOMINIO as WCM_NOME6_8_0_,
          mediagalle2_.ID_FOLDER as ID_FOLDE1_7_1_,
          mediagalle2_.UT_INS as UT_INS2_7_1_,
          mediagalle2_.DT_INS as DT_INS3_7_1_,
          mediagalle2_.DT_UPD as DT_UPD4_7_1_,
          mediagalle2_.UT_UPD as UT_UPD5_7_1_,
          mediagalle2_.DISABLED_FOLDER as DISABLED6_7_1_,
          mediagalle2_.ID_DOMINIO as ID_DOMI10_7_1_,
          mediagalle2_.ID_PADRE as ID_PADR11_7_1_,
          mediagalle2_.OPENED_FOLDER as OPENED_F7_7_1_,
          mediagalle2_.SELECTED_FOLDER as SELECTED8_7_1_,
          mediagalle2_.NOME_FOLDER as NOME_FOL9_7_1_ 
      from
          MEDIA_GALL_TREE mediagalle0_ 
      inner join
          WCM_DOMAIN wcmdomain1_ 
              on mediagalle0_.ID_DOMINIO=wcmdomain1_.ID_DOMINIO 
      left outer join
          MEDIA_GALL_TREE mediagalle2_ 
              on mediagalle0_.ID_PADRE=mediagalle2_.ID_FOLDER 
      where
          mediagalle0_.ID_DOMINIO=?
  </code></pre>
  
  <p>These are my table records:</p>
  
  <pre><code>id_folder; ut_ins; dt_ins; dt_upd; ut_upd; disabled_folder; opened_folder; selected_folder; nome_folder; id_dominio; id_padre
  "1";"system";"2014-06-12 18:23:16.649";"2014-06-12 18:23:16.649";"system";FALSE;FALSE;FALSE;"Root 1";1;
  "2";"system";"2014-06-12 18:23:16.662";"2014-06-12 18:23:16.662";"system";FALSE;FALSE;FALSE;"Root 2";2;
  "4";"wpsAdmin";"2014-06-13 16:18:01.428";"2014-06-13 18:12:14.228";"wpsAdmin";FALSE;FALSE;FALSE;"Testina";2;2
  "7";"wpsAdmin";"2014-06-13 17:33:05.575";"2014-06-13 17:33:10.275";"wpsAdmin";FALSE;FALSE;FALSE;"Angelo";2;2
  </code></pre>
  
  <p>May anybody tell me where I'm wrong? It seems to me all correct....any tips is welcome</p>
  
  <p>Thank you
  Angelo</p>
  
  <p>Just a note: all works pretty good if I chenge my POJO class method getChildern in this way:</p>
  
  <pre><code>@OneToMany( mappedBy = "father", targetEntity = WebTree.class, fetch=FetchType.EAGER)
  public Set&lt;WebTree&gt; getChildren()
  {
      return children;
  }
  </code></pre>
  
  <p>But I'm wondering why this behaviour?</p>
  
  <p>Thank you
  Angelo</p>