2016-11-25 1 views
0

Ich kann nicht herausfinden, warum Hibernate versucht, Sammlungselemente nach Transaktion Commit zu löschen. Und ich habe es sogar nicht darum gebeten.Hibernate löscht Sammlungselemente beim Transaktions-Commit

Irgendwelche Ideen?

Technische Details finden Sie weiter unten.

Hibernate Dialekt:

org.hibernate.dialect.SQLServerDialect 

Entity Klasse:

@Entity 
    @Table(name = "View_m_activity", schema = "model") 
    public class SourceActivity { 
     private Set<SourceActivityAttrOut> outputAttributes; 

     private Long ID; 

     @Id 
     public Long getID() { 
      return ID; 
     } 

     public void setID(Long ID) { 
      this.ID = ID; 
     } 

     @ElementCollection(fetch = FetchType.EAGER) 
     @CollectionTable(name = "View_m_activity_attr_out", schema = "model", joinColumns = @JoinColumn(name = "activity_id")) 
     public Set<SourceActivityAttrOut> getOutputAttributes() { 
      return outputAttributes; 
     } 

     public void setOutputAttributes(Set<SourceActivityAttrOut> outputAttributes) { 
      this.outputAttributes = outputAttributes; 
     } 
    } 

Sammlung Element Entitätsklasse:

@Embeddable 
    public class SourceActivityAttrOut { 
     private String code; 

     public String getCode() { 
      return code; 
     } 

     public void setCode(String code) { 
      this.code = code; 
     } 
    } 

Execution Code:

@Transactional 
    public void readSource(SourcePool sourcePool) { 
     sessionFactory.getCurrentSession().createQuery("from SourceActivity", SourceActivity.class).list(); 
    } 

Log Info:

Hibernate: 
    select 
     sourceacti0_.ID as ID1_0_ 
    from 
     model.View_m_activity sourceacti0_ 

Hibernate: 
    select 
     outputattr0_.activity_id as activity1_1_0_, 
     outputattr0_.code as code2_1_0_ 
    from 
     model.View_m_activity_attr_out outputattr0_ 
    where 
     outputattr0_.activity_id=? 

Hibernate: 
    select 
     outputattr0_.activity_id as activity1_1_0_, 
     outputattr0_.code as code2_1_0_ 
    from 
     model.View_m_activity_attr_out outputattr0_ 
    where 
     outputattr0_.activity_id=? 

Hibernate: 
    select 
     outputattr0_.activity_id as activity1_1_0_, 
     outputattr0_.code as code2_1_0_ 
    from 
     model.View_m_activity_attr_out outputattr0_ 
    where 
     outputattr0_.activity_id=? 

Hibernate: 
    select 
     outputattr0_.activity_id as activity1_1_0_, 
     outputattr0_.code as code2_1_0_ 
    from 
     model.View_m_activity_attr_out outputattr0_ 
    where 
     outputattr0_.activity_id=? 

Hibernate: 
    delete 
    from 
     model.View_m_activity_attr_out 
    where 
     activity_id=? 
+0

In Protokoll finde ich habe: – PMV

+0

'[TRACE] LoadContexts.locateLoadingCollectionEntry: 249 - Der Versuch Laden Sammlung Eintrag zu finden [CollectionKey [ru.avkcom.blackbox.modelimporter.db.domain.SourceActivity.outputAttributes # 10000001]] in jeder Ergebnissatzkontext " – PMV

+0

' [TRACE] LoadContexts.locateLoadingCollectionEntry: 255 - Sammlung [CollectionKey [ru.avkcom.blackbox.modelimporter.db.domain.SourceActivity.outputAttributes # 10000001]] im Ladekontext gefunden " – PMV

Antwort

1

Ursache des Problems war here

Kurz beschrieben wird, das Problem zu lösen ich hashcode außer Kraft setzen musste und gleich von SourceActivityAttrOut.

Verwandte Themen