-->
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.  [ 11 posts ] 
Author Message
 Post subject: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Thu Feb 25, 2010 4:40 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

Ich habe eine kleine Swing-Anwendung, welche Hibernate mit einem standalone
HSQLDB-Server benutzt. Es gibt eine Projektklasse (Singleton weil es eine
HSQLDB pro Projekt gibt), die SequenceList-Objekte enthält, und
SequenceList-Objekte enthalten wiederum GibbsSamplingResults-Objekte
(die Vererbung wird im Moment nicht benutzt):

Code:
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value="Project")
@Table(name="projects")
public class Project {
   @Id
   private final Long id = 1L; // there is one HSQLDB per Project!
   @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
   @org.hibernate.annotations.IndexColumn(name="indexcol_hitlists")
   // DELETE_ORPHAN is necessary so that a SequenceList is deleted when it's removed
   // from the collection!
   @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL,
                                      org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
   private List<SequenceList> hitlists;
  [...]

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value="SequenceList")
@Table(name="sequencelists")
public class SequenceList {
   @Id
   @GeneratedValue
   protected Long id; 
   @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
   // this is necessary so that a GibbsSamplingResults object is deleted when it's removed
   // from the collection!
   @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL,
                                      org.hibernate.annotations.CascadeType.DELETE_ORPHAN})   
   protected List<GibbsSamplingResults> _results = new ArrayList<GibbsSamplingResults>();
  [...]

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorValue(value="GibbsSamplingResults")
@Table(name="gibbs_result_set")
public class GibbsSamplingResults {
   @Id
   @GeneratedValue
   private Long id;
  [...]


Wenn ich eine SequenceList zu einem Project, und dann ein GibbsSamplingResults
zur Sequenzliste hinzufüge, mit session.saveOrUpdate(project) persistiere
(ohne Fehler), sieht die Datenbank ok aus: ein GibbsSamplingResults-Objekt
für die SequenceList (mit id=1).

Wenn ich allerdings das Projekt aus der Persistenz wieder lade,
dann treten eine zufällige Anzahl von GibbsSamplingResults-Objekten
in SequenceList._results auf (ungefähr 1500), die alle id=1 haben.

Ich bin sehr dankbar für alle Hinweise, wie ich so etwas debuggen kann!!
Könnte das ein Problem mit falschen Mappings oder Cascadings sein?

Vielen Dank im Voraus!!


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Thu Feb 25, 2010 6:02 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Als erstes wuerde ich nachschauen welche queries hibernate ausfuehrt und welche results(set) Du dabei zurueckbekommst.
Dazu empfehle ich dir p6spy (http://www.p6spy.com) zwischen Hibernate und deinem JDBCDriver zu schalten.

N.B.: Zum debuggen verwende ich Eclipse (Hibernate ist ja (fast) alles OpenSource)


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Fri Feb 26, 2010 9:18 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

ich habe jetzt mal die ziemlich ähnliche funktionierende Version meines
Programs (ein paar Tage alt) mit der aktuellen, bei der der Fehler auftritt,
mit show_sql=true und log4j-debug-modus verglichen.

Auffällig ist, dass die SQL-query, die mit "Hibernate: select ..." beim
Laden des Projektes ausgegeben wird, in der funktionierenden Version 1
Zeile liefert (getestet in HSQLDB-Frontend), bei der buggy Version 8 Zeilen.
Und es treten in dem Testfall genau 8 GibbsSamplingResults-Objekte (broken)
statt einem (korrekt) unterhalb der SequenceList auf.

Die Resultssets im Fehlerfall sehen so aus:
Code:
13:14:05,522 DEBUG Loader:1877 - loading entity: [de.bhc.pepa.Project#1]
[...]
13:14:05,546 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Sequence#1], EntityKey[de.bhc.pepa.Project#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#1], EntityKey[de.bhc.gibbssampler.Alignment#1], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1], EntityKey[de.bhc.gibbssampler.Background#1], EntityKey[de.bhc.pepa.Project#1]
13:14:05,567 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:14:05,576 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._list#1]
13:14:05,579 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:14:05,583 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:14:05,584 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Sequence#1], EntityKey[de.bhc.pepa.Project#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#2], EntityKey[de.bhc.gibbssampler.Alignment#2], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#2], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1], EntityKey[de.bhc.gibbssampler.Background#1], EntityKey[de.bhc.pepa.Project#1]
13:14:05,586 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:14:05,587 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._list#1]
13:14:05,587 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:14:05,588 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:14:05,591 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Sequence#2], EntityKey[de.bhc.pepa.Project#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#1], EntityKey[de.bhc.gibbssampler.Alignment#1], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1], EntityKey[de.bhc.gibbssampler.Background#1], EntityKey[de.bhc.pepa.Project#1]
13:14:05,591 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:14:05,592 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._list#1]
13:14:05,593 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:14:05,594 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:14:05,594 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Sequence#2], EntityKey[de.bhc.pepa.Project#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#2], EntityKey[de.bhc.gibbssampler.Alignment#2], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#2], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1], EntityKey[de.bhc.gibbssampler.Background#1], EntityKey[de.bhc.pepa.Project#1]
13:14:05,595 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:14:05,595 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._list#1]
13:14:05,595 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:14:05,596 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:14:05,596 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Sequence#3], EntityKey[de.bhc.pepa.Project#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#1], EntityKey[de.bhc.gibbssampler.Alignment#1], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1], EntityKey[de.bhc.gibbssampler.Background#1], EntityKey[de.bhc.pepa.Project#1]
13:14:05,597 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:14:05,597 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._list#1]
13:14:05,597 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:14:05,600 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]

=> genau 8x wiederholt sich das Muster

Im korrekten Fall sieht das so aus:
Code:
13:17:31,112 DEBUG AbstractBatcher:426 - about to open ResultSet (open ResultSets: 0, globally: 0)
13:17:31,112 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Background#1], null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, EntityKey[de.bhc.pepa.Project#1]
13:17:31,134 DEBUG Loader:1008 - found row of collection: [de.bhc.pepa.Project.hitlists#1]
13:17:31,143 DEBUG AbstractBatcher:433 - about to close ResultSet (open ResultSets: 1, globally: 1)
13:17:31,143 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
13:17:31,144 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.gibbssampler.SequenceList#1]
13:17:31,156 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.gibbssampler.SequenceList#1]
13:17:31,157 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.gibbssampler.Background#1]
13:17:31,161 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.gibbssampler.Background#1]
13:17:31,162 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.pepa.Project#1]
13:17:31,163 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.pepa.Project#1]
13:17:31,163 DEBUG CollectionLoadContext:240 - 1 collections were found in result set for role: de.bhc.pepa.Project.hitlists
13:17:31,164 DEBUG CollectionLoadContext:283 - collection fully initialized: [de.bhc.pepa.Project.hitlists#1]
13:17:31,164 DEBUG CollectionLoadContext:249 - 1 collections initialized for role: de.bhc.pepa.Project.hitlists
13:17:31,164 DEBUG CollectionLoadContext:233 - no collections were found in result set for role: de.bhc.gibbssampler.SequenceList._list
13:17:31,165 DEBUG CollectionLoadContext:233 - no collections were found in result set for role: de.bhc.gibbssampler.SequenceList._results
13:17:31,167 DEBUG CollectionLoadContext:233 - no collections were found in result set for role: de.bhc.gibbssampler.GibbsSamplingResults.results
13:17:31,167 DEBUG CollectionLoadContext:233 - no collections were found in result set for role: de.bhc.gibbssampler.GibbsSamplingResults.splits
13:17:31,168 DEBUG StatefulPersistenceContext:860 - initializing non-lazy collections
13:17:31,169 DEBUG Loader:2011 - loading collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:17:31,170 DEBUG AbstractBatcher:410 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
13:17:31,170 DEBUG SQL:111 - select results0_.sequencelists_id as sequence1_3_, results0_._results_id as column2_3_, gibbssampl1_.id as id8_0_, gibbssampl1_.globalpwm_id as globalpwm6_8_0_, gibbssampl1_.maximum_fitness as maximum2_8_0_, gibbssampl1_.params_id as params7_8_0_, gibbssampl1_.runid as runid8_0_, gibbssampl1_.sorted as sorted8_0_, gibbssampl1_.version as version8_0_, globalpwm2_.id as id9_1_, globalpwm2_.class_counts as class2_9_1_, globalpwm2_.class_counts_log as class3_9_1_, globalpwm2_.class_relfreq as class4_9_1_, globalpwm2_.class_relfreq_log as class5_9_1_, globalpwm2_.class_width as class6_9_1_, globalpwm2_.class_widths_log as class7_9_1_, globalpwm2_.log as log9_1_, globalpwm2_.max_ax as max9_9_1_, globalpwm2_.max_ax_log as max10_9_1_, globalpwm2_.min_ax as min11_9_1_, globalpwm2_.min_ax_log as min12_9_1_, globalpwm2_.number_classes as number13_9_1_, globalpwm2_.total_global_counts as total14_9_1_, globalpwm2_.version as version9_1_, gibbssampl3_.id as id6_2_, gibbssampl3_.W as W6_2_, gibbssampl3_.alphabet as alphabet6_2_, gibbssampl3_.convergenceThreshold as converge4_6_2_, gibbssampl3_.deterministicSeeds as determin5_6_2_, gibbssampl3_.deterministicSeqOrder as determin6_6_2_, gibbssampl3_.lawrence93Algorithm as lawrence7_6_2_, gibbssampl3_.lawrencePseudocounts as lawrence8_6_2_, gibbssampl3_.maxInnerIter as maxInner9_6_2_, gibbssampl3_.pseudocountsLinearFactor as pseudoc10_6_2_ from sequencelists_gibbs_result_set results0_ left outer join gibbs_result_set gibbssampl1_ on results0_._results_id=gibbssampl1_.id left outer join globalpwms globalpwm2_ on gibbssampl1_.globalpwm_id=globalpwm2_.id left outer join gibbs_params gibbssampl3_ on gibbssampl1_.params_id=gibbssampl3_.id where results0_.sequencelists_id=?
Hibernate: select results0_.sequencelists_id as sequence1_3_, results0_._results_id as column2_3_, gibbssampl1_.id as id8_0_, gibbssampl1_.globalpwm_id as globalpwm6_8_0_, gibbssampl1_.maximum_fitness as maximum2_8_0_, gibbssampl1_.params_id as params7_8_0_, gibbssampl1_.runid as runid8_0_, gibbssampl1_.sorted as sorted8_0_, gibbssampl1_.version as version8_0_, globalpwm2_.id as id9_1_, globalpwm2_.class_counts as class2_9_1_, globalpwm2_.class_counts_log as class3_9_1_, globalpwm2_.class_relfreq as class4_9_1_, globalpwm2_.class_relfreq_log as class5_9_1_, globalpwm2_.class_width as class6_9_1_, globalpwm2_.class_widths_log as class7_9_1_, globalpwm2_.log as log9_1_, globalpwm2_.max_ax as max9_9_1_, globalpwm2_.max_ax_log as max10_9_1_, globalpwm2_.min_ax as min11_9_1_, globalpwm2_.min_ax_log as min12_9_1_, globalpwm2_.number_classes as number13_9_1_, globalpwm2_.total_global_counts as total14_9_1_, globalpwm2_.version as version9_1_, gibbssampl3_.id as id6_2_, gibbssampl3_.W as W6_2_, gibbssampl3_.alphabet as alphabet6_2_, gibbssampl3_.convergenceThreshold as converge4_6_2_, gibbssampl3_.deterministicSeeds as determin5_6_2_, gibbssampl3_.deterministicSeqOrder as determin6_6_2_, gibbssampl3_.lawrence93Algorithm as lawrence7_6_2_, gibbssampl3_.lawrencePseudocounts as lawrence8_6_2_, gibbssampl3_.maxInnerIter as maxInner9_6_2_, gibbssampl3_.pseudocountsLinearFactor as pseudoc10_6_2_ from sequencelists_gibbs_result_set results0_ left outer join gibbs_result_set gibbssampl1_ on results0_._results_id=gibbssampl1_.id left outer join globalpwms globalpwm2_ on gibbssampl1_.globalpwm_id=globalpwm2_.id left outer join gibbs_params gibbssampl3_ on gibbssampl1_.params_id=gibbssampl3_.id where results0_.sequencelists_id=?
13:17:31,175 DEBUG AbstractBatcher:426 - about to open ResultSet (open ResultSets: 0, globally: 0)
13:17:31,176 DEBUG Loader:1078 - result set contains (possibly empty) collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:17:31,176 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.GibbsSamplingResults#1], EntityKey[de.bhc.gibbssampler.GlobalPWM#1], EntityKey[de.bhc.gibbssampler.GibbsSamplerParameters#1]
13:17:31,181 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.SequenceList._results#1]
13:17:31,181 DEBUG AbstractBatcher:433 - about to close ResultSet (open ResultSets: 1, globally: 1)
13:17:31,182 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
13:17:31,182 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.gibbssampler.GibbsSamplingResults#1]
13:17:31,183 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.gibbssampler.GibbsSamplingResults#1]
13:17:31,183 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.gibbssampler.GlobalPWM#1]
13:17:31,185 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.gibbssampler.GlobalPWM#1]
13:17:31,185 DEBUG TwoPhaseLoad:130 - resolving associations for [de.bhc.gibbssampler.GibbsSamplerParameters#1]
13:17:31,186 DEBUG TwoPhaseLoad:226 - done materializing entity [de.bhc.gibbssampler.GibbsSamplerParameters#1]
13:17:31,186 DEBUG CollectionLoadContext:240 - 1 collections were found in result set for role: de.bhc.gibbssampler.SequenceList._results
13:17:31,188 DEBUG CollectionLoadContext:283 - collection fully initialized: [de.bhc.gibbssampler.SequenceList._results#1]
13:17:31,188 DEBUG CollectionLoadContext:249 - 1 collections initialized for role: de.bhc.gibbssampler.SequenceList._results
13:17:31,189 DEBUG Loader:2035 - done loading collection
13:17:31,189 DEBUG Loader:2011 - loading collection: [de.bhc.gibbssampler.GibbsSamplingResults.splits#1]
13:17:31,190 DEBUG AbstractBatcher:410 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
13:17:31,190 DEBUG SQL:111 - select splits0_.gibbs_result_set_id as gibbs1_17_, splits0_.splits_id as splits2_17_, splits0_.indexcol as indexcol17_, gsresultsp1_.id as id10_0_, gsresultsp1_.GSR_id as GSR4_10_0_, gsresultsp1_.ax_threshold as ax2_10_0_, gsresultsp1_.lower_id as lower5_10_0_, gsresultsp1_.pwm_index as pwm3_10_0_, gsresultsp1_.upper_id as upper6_10_0_, gibbssampl2_.id as id7_1_, gibbssampl2_.alignment_id as alignment6_7_1_, gibbssampl2_.fitness as fitness7_1_, gibbssampl2_.most_probable_pattern as most3_7_1_, gibbssampl2_.num_copies as num4_7_1_, gibbssampl2_.pwm_id as pwm7_7_1_, gibbssampl2_.result_set_id as result8_7_1_, gibbssampl2_.version as version7_1_, alignment3_.id as id5_2_, alignment3_._Ax as column2_5_2_, alignment3_._W as column3_5_2_, alignment3_._a_k as column4_5_2_, alignment3_._input_dictionary_id as column6_5_2_, alignment3_._pwm_id as column7_5_2_, alignment3_._sl_id as column8_5_2_, alignment3_.version as version5_2_, dictionary4_.id as id4_3_, dictionary4_._dict as colum2_4_3_, dictionary4_._sl_id as column4_4_3_, dictionary4_.version as version4_3_, sequenceli5_.id as id3_4_, sequenceli5_._bg_id as column6_3_4_, sequenceli5_._patterns as column2_3_4_, sequenceli5_._project_id as column7_3_4_, sequenceli5_.containing_split_id as containing8_3_4_, sequenceli5_.idInProject as idInProj3_3_4_, sequenceli5_.name as name3_4_, sequenceli5_.version as version3_4_, background6_.id as id2_5_, background6_._alphabet as column2_2_5_, background6_._from_file as column3_2_5_, background6_._map as column4_2_5_, background6_._poolname as column5_2_5_, background6_._seq_elt_counts as column6_2_5_, background6_._sl_id as column9_2_5_, background6_._total_num_seq_elements as column7_2_5_, background6_.version as version2_5_, sequenceli7_.id as id3_6_, sequenceli7_._bg_id as column6_3_6_, sequenceli7_._patterns as column2_3_6_, sequenceli7_._project_id as column7_3_6_, sequenceli7_.containing_split_id as containing8_3_6_, sequenceli7_.idInProject as idInProj3_3_6_, sequenceli7_.name as name3_6_, sequenceli7_.version as version3_6_, project8_.id as id11_7_, project8_.creation_date as creation2_11_7_, project8_.description as descript3_11_7_, project8_.dirname as dirname11_7_, project8_.hitlist_count as hitlist5_11_7_, project8_.lastHitsetDirectory as lastHits6_11_7_, project8_.lastPWMViewDirectory as lastPWMV7_11_7_, project8_.modification_date as modifica8_11_7_, project8_.name as name11_7_, project8_.owner as owner11_7_, project8_.run_count as run11_11_7_, project8_.test_run_count as test12_11_7_, project8_.version as version11_7_, gsresultsp9_.id as id10_8_, gsresultsp9_.GSR_id as GSR4_10_8_, gsresultsp9_.ax_threshold as ax2_10_8_, gsresultsp9_.lower_id as lower5_10_8_, gsresultsp9_.pwm_index as pwm3_10_8_, gsresultsp9_.upper_id as upper6_10_8_, sequenceli10_.id as id3_9_, sequenceli10_._bg_id as column6_3_9_, sequenceli10_._patterns as column2_3_9_, sequenceli10_._project_id as column7_3_9_, sequenceli10_.containing_split_id as containing8_3_9_, sequenceli10_.idInProject as idInProj3_3_9_, sequenceli10_.name as name3_9_, sequenceli10_.version as version3_9_, sequenceli11_.id as id3_10_, sequenceli11_._bg_id as column6_3_10_, sequenceli11_._patterns as column2_3_10_, sequenceli11_._project_id as column7_3_10_, sequenceli11_.containing_split_id as containing8_3_10_, sequenceli11_.idInProject as idInProj3_3_10_, sequenceli11_.name as name3_10_, sequenceli11_.version as version3_10_, pwm12_.id as id1_11_, pwm12_._counts as column2_1_11_, pwm12_._p_j as column3_1_11_, pwm12_._q_ij as column4_1_11_, pwm12_.version as version1_11_, sequenceli13_.id as id3_12_, sequenceli13_._bg_id as column6_3_12_, sequenceli13_._patterns as column2_3_12_, sequenceli13_._project_id as column7_3_12_, sequenceli13_.containing_split_id as containing8_3_12_, sequenceli13_.idInProject as idInProj3_3_12_, sequenceli13_.name as name3_12_, sequenceli13_.version as version3_12_, pwm14_.id as id1_13_, pwm14_._counts as column2_1_13_, pwm14_._p_j as column3_1_13_, pwm14_._q_ij as column4_1_13_, pwm14_.version as version1_13_, gibbssampl15_.id as id8_14_, gibbssampl15_.globalpwm_id as globalpwm6_8_14_, gibbssampl15_.maximum_fitness as maximum2_8_14_, gibbssampl15_.params_id as params7_8_14_, gibbssampl15_.runid as runid8_14_, gibbssampl15_.sorted as sorted8_14_, gibbssampl15_.version as version8_14_, globalpwm16_.id as id9_15_, globalpwm16_.class_counts as class2_9_15_, globalpwm16_.class_counts_log as class3_9_15_, globalpwm16_.class_relfreq as class4_9_15_, globalpwm16_.class_relfreq_log as class5_9_15_, globalpwm16_.class_width as class6_9_15_, globalpwm16_.class_widths_log as class7_9_15_, globalpwm16_.log as log9_15_, globalpwm16_.max_ax as max9_9_15_, globalpwm16_.max_ax_log as max10_9_15_, globalpwm16_.min_ax as min11_9_15_, globalpwm16_.min_ax_log as min12_9_15_, globalpwm16_.number_classes as number13_9_15_, globalpwm16_.total_global_counts as total14_9_15_, globalpwm16_.version as version9_15_, gibbssampl17_.id as id6_16_, gibbssampl17_.W as W6_16_, gibbssampl17_.alphabet as alphabet6_16_, gibbssampl17_.convergenceThreshold as converge4_6_16_, gibbssampl17_.deterministicSeeds as determin5_6_16_, gibbssampl17_.deterministicSeqOrder as determin6_6_16_, gibbssampl17_.lawrence93Algorithm as lawrence7_6_16_, gibbssampl17_.lawrencePseudocounts as lawrence8_6_16_, gibbssampl17_.maxInnerIter as maxInner9_6_16_, gibbssampl17_.pseudocountsLinearFactor as pseudoc10_6_16_ from gibbs_result_set_gsresultsplit splits0_ left outer join gsresultsplit gsresultsp1_ on splits0_.splits_id=gsresultsp1_.id left outer join gibbs_results gibbssampl2_ on gsresultsp1_.GSR_id=gibbssampl2_.id left outer join alignments alignment3_ on gibbssampl2_.alignment_id=alignment3_.id left outer join dicts dictionary4_ on alignment3_._input_dictionary_id=dictionary4_.id left outer join sequencelists sequenceli5_ on dictionary4_._sl_id=sequenceli5_.id left outer join bgs background6_ on sequenceli5_._bg_id=background6_.id left outer join sequencelists sequenceli7_ on background6_._sl_id=sequenceli7_.id left outer join projects project8_ on sequenceli7_._project_id=project8_.id left outer join gsresultsplit gsresultsp9_ on sequenceli7_.containing_split_id=gsresultsp9_.id left outer join sequencelists sequenceli10_ on gsresultsp9_.lower_id=sequenceli10_.id left outer join sequencelists sequenceli11_ on gsresultsp9_.upper_id=sequenceli11_.id left outer join pwms pwm12_ on alignment3_._pwm_id=pwm12_.id left outer join sequencelists sequenceli13_ on alignment3_._sl_id=sequenceli13_.id left outer join pwms pwm14_ on gibbssampl2_.pwm_id=pwm14_.id left outer join gibbs_result_set gibbssampl15_ on gibbssampl2_.result_set_id=gibbssampl15_.id left outer join globalpwms globalpwm16_ on gibbssampl15_.globalpwm_id=globalpwm16_.id left outer join gibbs_params gibbssampl17_ on gibbssampl15_.params_id=gibbssampl17_.id where splits0_.gibbs_result_set_id=?
13:17:31,199 DEBUG AbstractBatcher:426 - about to open ResultSet (open ResultSets: 0, globally: 0)
13:17:31,201 DEBUG Loader:1078 - result set contains (possibly empty) collection: [de.bhc.gibbssampler.GibbsSamplingResults.splits#1]
13:17:31,202 DEBUG AbstractBatcher:433 - about to close ResultSet (open ResultSets: 1, globally: 1)
13:17:31,202 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
13:17:31,202 DEBUG CollectionLoadContext:240 - 1 collections were found in result set for role: de.bhc.gibbssampler.GibbsSamplingResults.splits
13:17:31,203 DEBUG CollectionLoadContext:283 - collection fully initialized: [de.bhc.gibbssampler.GibbsSamplingResults.splits#1]
13:17:31,203 DEBUG CollectionLoadContext:249 - 1 collections initialized for role: de.bhc.gibbssampler.GibbsSamplingResults.splits
13:17:31,203 DEBUG Loader:2035 - done loading collection
13:17:31,204 DEBUG Loader:2011 - loading collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:17:31,204 DEBUG AbstractBatcher:410 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
13:17:31,204 DEBUG SQL:111 - select results0_.gibbs_result_set_id as gibbs1_17_, results0_.results_id as results2_17_, results0_.indexcol as indexcol17_, gibbssampl1_.id as id7_0_, gibbssampl1_.alignment_id as alignment6_7_0_, gibbssampl1_.fitness as fitness7_0_, gibbssampl1_.most_probable_pattern as most3_7_0_, gibbssampl1_.num_copies as num4_7_0_, gibbssampl1_.pwm_id as pwm7_7_0_, gibbssampl1_.result_set_id as result8_7_0_, gibbssampl1_.version as version7_0_, alignment2_.id as id5_1_, alignment2_._Ax as column2_5_1_, alignment2_._W as column3_5_1_, alignment2_._a_k as column4_5_1_, alignment2_._input_dictionary_id as column6_5_1_, alignment2_._pwm_id as column7_5_1_, alignment2_._sl_id as column8_5_1_, alignment2_.version as version5_1_, dictionary3_.id as id4_2_, dictionary3_._dict as column2_4_2_, dictionary3_._sl_id as column4_4_2_, dictionary3_.version as version4_2_, sequenceli4_.id as id3_3_, sequenceli4_._bg_id as column6_3_3_, sequenceli4_._patterns as column2_3_3_, sequenceli4_._project_id as column7_3_3_, sequenceli4_.containing_split_id as containing8_3_3_, sequenceli4_.idInProject as idInProj3_3_3_, sequenceli4_.name as name3_3_, sequenceli4_.version as version3_3_, background5_.id as id2_4_, background5_._alphabet as column2_2_4_, background5_._from_file as column3_2_4_, background5_._map as column4_2_4_, background5_._poolname as column5_2_4_, background5_._seq_elt_counts as column6_2_4_, background5_._sl_id as column9_2_4_, background5_._total_num_seq_elements as column7_2_4_, background5_.version as version2_4_, sequenceli6_.id as id3_5_, sequenceli6_._bg_id as column6_3_5_, sequenceli6_._patterns as column2_3_5_, sequenceli6_._project_id as column7_3_5_, sequenceli6_.containing_split_id as containing8_3_5_, sequenceli6_.idInProject as idInProj3_3_5_, sequenceli6_.name as name3_5_, sequenceli6_.version as version3_5_, project7_.id as id11_6_, project7_.creation_date as creation2_11_6_, project7_.description as descript3_11_6_, project7_.dirname as dirname11_6_, project7_.hitlist_count as hitlist5_11_6_, project7_.lastHitsetDirectory as lastHits6_11_6_, project7_.lastPWMViewDirectory as lastPWMV7_11_6_, project7_.modification_date as modifica8_11_6_, project7_.name as name11_6_, project7_.owner as owner11_6_, project7_.run_count as run11_11_6_, project7_.test_run_count as test12_11_6_, project7_.version as version11_6_, gsresultsp8_.id as id10_7_, gsresultsp8_.GSR_id as GSR4_10_7_, gsresultsp8_.ax_threshold as ax2_10_7_, gsresultsp8_.lower_id as lower5_10_7_, gsresultsp8_.pwm_index as pwm3_10_7_, gsresultsp8_.upper_id as upper6_10_7_, gibbssampl9_.id as id7_8_, gibbssampl9_.alignment_id as alignment6_7_8_, gibbssampl9_.fitness as fitness7_8_, gibbssampl9_.most_probable_pattern as most3_7_8_, gibbssampl9_.num_copies as num4_7_8_, gibbssampl9_.pwm_id as pwm7_7_8_, gibbssampl9_.result_set_id as result8_7_8_, gibbssampl9_.version as version7_8_, pwm10_.id as id1_9_, pwm10_._counts as column2_1_9_, pwm10_._p_j as column3_1_9_, pwm10_._q_ij as column4_1_9_, pwm10_.version as version1_9_, gibbssampl11_.id as id8_10_, gibbssampl11_.globalpwm_id as globalpwm6_8_10_, gibbssampl11_.maximum_fitness as maximum2_8_10_, gibbssampl11_.params_id as params7_8_10_, gibbssampl11_.runid as runid8_10_, gibbssampl11_.sorted as sorted8_10_, gibbssampl11_.version as version8_10_, globalpwm12_.id as id9_11_, globalpwm12_.class_counts as class2_9_11_, globalpwm12_.class_counts_log as class3_9_11_, globalpwm12_.class_relfreq as class4_9_11_, globalpwm12_.class_relfreq_log as class5_9_11_, globalpwm12_.class_width as class6_9_11_, globalpwm12_.class_widths_log as class7_9_11_, globalpwm12_.log as log9_11_, globalpwm12_.max_ax as max9_9_11_, globalpwm12_.max_ax_log as max10_9_11_, globalpwm12_.min_ax as min11_9_11_, globalpwm12_.min_ax_log as min12_9_11_, globalpwm12_.number_classes as number13_9_11_, globalpwm12_.total_global_counts as total14_9_11_, globalpwm12_.version as version9_11_, gibbssampl13_.id as id6_12_, gibbssampl13_.W as W6_12_, gibbssampl13_.alphabet as alphabet6_12_, gibbssampl13_.convergenceThreshold as converge4_6_12_, gibbssampl13_.deterministicSeeds as determin5_6_12_, gibbssampl13_.deterministicSeqOrder as determin6_6_12_, gibbssampl13_.lawrence93Algorithm as lawrence7_6_12_, gibbssampl13_.lawrencePseudocounts as lawrence8_6_12_, gibbssampl13_.maxInnerIter as maxInner9_6_12_, gibbssampl13_.pseudocountsLinearFactor as pseudoc10_6_12_, sequenceli14_.id as id3_13_, sequenceli14_._bg_id as column6_3_13_, sequenceli14_._patterns as column2_3_13_, sequenceli14_._project_id as column7_3_13_, sequenceli14_.containing_split_id as containing8_3_13_, sequenceli14_.idInProject as idInProj3_3_13_, sequenceli14_.name as name3_13_, sequenceli14_.version as version3_13_, sequenceli15_.id as id3_14_, sequenceli15_._bg_id as column6_3_14_, sequenceli15_._patterns as column2_3_14_, sequenceli15_._project_id as column7_3_14_, sequenceli15_.containing_split_id as containing8_3_14_, sequenceli15_.idInProject as idInProj3_3_14_, sequenceli15_.name as name3_14_, sequenceli15_.version as version3_14_, pwm16_.id as id1_15_, pwm16_._counts as column2_1_15_, pwm16_._p_j as column3_1_15_, pwm16_._q_ij as column4_1_15_, pwm16_.version as version1_15_, sequenceli17_.id as id3_16_, sequenceli17_._bg_id as column6_3_16_, sequenceli17_._patterns as column2_3_16_, sequenceli17_._project_id as column7_3_16_, sequenceli17_.containing_split_id as containing8_3_16_, sequenceli17_.idInProject as idInProj3_3_16_, sequenceli17_.name as name3_16_, sequenceli17_.version as version3_16_ from gibbs_result_set_gibbs_results results0_ left outer join gibbs_results gibbssampl1_ on results0_.results_id=gibbssampl1_.id left outer join alignments alignment2_ on gibbssampl1_.alignment_id=alignment2_.id left outer join dicts dictionary3_ on alignment2_._input_dictionary_id=dictionary3_.id left outer join sequencelists sequenceli4_ on dictionary3_._sl_id=sequenceli4_.id left outer join bgs background5_ on sequenceli4_._bg_id=background5_.id left outer join sequencelists sequenceli6_ on background5_._sl_id=sequenceli6_.id left outer join projects project7_ on sequenceli6_._project_id=project7_.id left outer join gsresultsplit gsresultsp8_ on sequenceli6_.containing_split_id=gsresultsp8_.id left outer join gibbs_results gibbssampl9_ on gsresultsp8_.GSR_id=gibbssampl9_.id left outer join pwms pwm10_ on gibbssampl9_.pwm_id=pwm10_.id left outer join gibbs_result_set gibbssampl11_ on gibbssampl9_.result_set_id=gibbssampl11_.id left outer join globalpwms globalpwm12_ on gibbssampl11_.globalpwm_id=globalpwm12_.id left outer join gibbs_params gibbssampl13_ on gibbssampl11_.params_id=gibbssampl13_.id left outer join sequencelists sequenceli14_ on gsresultsp8_.lower_id=sequenceli14_.id left outer join sequencelists sequenceli15_ on gsresultsp8_.upper_id=sequenceli15_.id left outer join pwms pwm16_ on alignment2_._pwm_id=pwm16_.id left outer join sequencelists sequenceli17_ on alignment2_._sl_id=sequenceli17_.id where results0_.gibbs_result_set_id=?
Hibernate: select results0_.gibbs_result_set_id as gibbs1_17_, results0_.results_id as results2_17_, results0_.indexcol as indexcol17_, gibbssampl1_.id as id7_0_, gibbssampl1_.alignment_id as alignment6_7_0_, gibbssampl1_.fitness as fitness7_0_, gibbssampl1_.most_probable_pattern as most3_7_0_, gibbssampl1_.num_copies as num4_7_0_, gibbssampl1_.pwm_id as pwm7_7_0_, gibbssampl1_.result_set_id as result8_7_0_, gibbssampl1_.version as version7_0_, alignment2_.id as id5_1_, alignment2_._Ax as column2_5_1_, alignment2_._W as column3_5_1_, alignment2_._a_k as column4_5_1_, alignment2_._input_dictionary_id as column6_5_1_, alignment2_._pwm_id as column7_5_1_, alignment2_._sl_id as column8_5_1_, alignment2_.version as version5_1_, dictionary3_.id as id4_2_, dictionary3_._dict as column2_4_2_, dictionary3_._sl_id as column4_4_2_, dictionary3_.version as version4_2_, sequenceli4_.id as id3_3_, sequenceli4_._bg_id as column6_3_3_, sequenceli4_._patterns as column2_3_3_, sequenceli4_._project_id as column7_3_3_, sequenceli4_.containing_split_id as containing8_3_3_, sequenceli4_.idInProject as idInProj3_3_3_, sequenceli4_.name as name3_3_, sequenceli4_.version as version3_3_, background5_.id as id2_4_, background5_._alphabet as column2_2_4_, background5_._from_file as column3_2_4_, background5_._map as column4_2_4_, background5_._poolname as column5_2_4_, background5_._seq_elt_counts as column6_2_4_, background5_._sl_id as column9_2_4_, background5_._total_num_seq_elements as column7_2_4_, background5_.version as version2_4_, sequenceli6_.id as id3_5_, sequenceli6_._bg_id as column6_3_5_, sequenceli6_._patterns as column2_3_5_, sequenceli6_._project_id as column7_3_5_, sequenceli6_.containing_split_id as containing8_3_5_, sequenceli6_.idInProject as idInProj3_3_5_, sequenceli6_.name as name3_5_, sequenceli6_.version as version3_5_, project7_.id as id11_6_, project7_.creation_date as creation2_11_6_, project7_.description as descript3_11_6_, project7_.dirname as dirname11_6_, project7_.hitlist_count as hitlist5_11_6_, project7_.lastHitsetDirectory as lastHits6_11_6_, project7_.lastPWMViewDirectory as lastPWMV7_11_6_, project7_.modification_date as modifica8_11_6_, project7_.name as name11_6_, project7_.owner as owner11_6_, project7_.run_count as run11_11_6_, project7_.test_run_count as test12_11_6_, project7_.version as version11_6_, gsresultsp8_.id as id10_7_, gsresultsp8_.GSR_id as GSR4_10_7_, gsresultsp8_.ax_threshold as ax2_10_7_, gsresultsp8_.lower_id as lower5_10_7_, gsresultsp8_.pwm_index as pwm3_10_7_, gsresultsp8_.upper_id as upper6_10_7_, gibbssampl9_.id as id7_8_, gibbssampl9_.alignment_id as alignment6_7_8_, gibbssampl9_.fitness as fitness7_8_, gibbssampl9_.most_probable_pattern as most3_7_8_, gibbssampl9_.num_copies as num4_7_8_, gibbssampl9_.pwm_id as pwm7_7_8_, gibbssampl9_.result_set_id as result8_7_8_, gibbssampl9_.version as version7_8_, pwm10_.id as id1_9_, pwm10_._counts as column2_1_9_, pwm10_._p_j as column3_1_9_, pwm10_._q_ij as column4_1_9_, pwm10_.version as version1_9_, gibbssampl11_.id as id8_10_, gibbssampl11_.globalpwm_id as globalpwm6_8_10_, gibbssampl11_.maximum_fitness as maximum2_8_10_, gibbssampl11_.params_id as params7_8_10_, gibbssampl11_.runid as runid8_10_, gibbssampl11_.sorted as sorted8_10_, gibbssampl11_.version as version8_10_, globalpwm12_.id as id9_11_, globalpwm12_.class_counts as class2_9_11_, globalpwm12_.class_counts_log as class3_9_11_, globalpwm12_.class_relfreq as class4_9_11_, globalpwm12_.class_relfreq_log as class5_9_11_, globalpwm12_.class_width as class6_9_11_, globalpwm12_.class_widths_log as class7_9_11_, globalpwm12_.log as log9_11_, globalpwm12_.max_ax as max9_9_11_, globalpwm12_.max_ax_log as max10_9_11_, globalpwm12_.min_ax as min11_9_11_, globalpwm12_.min_ax_log as min12_9_11_, globalpwm12_.number_classes as number13_9_11_, globalpwm12_.total_global_counts as total14_9_11_, globalpwm12_.version as version9_11_, gibbssampl13_.id as id6_12_, gibbssampl13_.W as W6_12_, gibbssampl13_.alphabet as alphabet6_12_, gibbssampl13_.convergenceThreshold as converge4_6_12_, gibbssampl13_.deterministicSeeds as determin5_6_12_, gibbssampl13_.deterministicSeqOrder as determin6_6_12_, gibbssampl13_.lawrence93Algorithm as lawrence7_6_12_, gibbssampl13_.lawrencePseudocounts as lawrence8_6_12_, gibbssampl13_.maxInnerIter as maxInner9_6_12_, gibbssampl13_.pseudocountsLinearFactor as pseudoc10_6_12_, sequenceli14_.id as id3_13_, sequenceli14_._bg_id as column6_3_13_, sequenceli14_._patterns as column2_3_13_, sequenceli14_._project_id as column7_3_13_, sequenceli14_.containing_split_id as containing8_3_13_, sequenceli14_.idInProject as idInProj3_3_13_, sequenceli14_.name as name3_13_, sequenceli14_.version as version3_13_, sequenceli15_.id as id3_14_, sequenceli15_._bg_id as column6_3_14_, sequenceli15_._patterns as column2_3_14_, sequenceli15_._project_id as column7_3_14_, sequenceli15_.containing_split_id as containing8_3_14_, sequenceli15_.idInProject as idInProj3_3_14_, sequenceli15_.name as name3_14_, sequenceli15_.version as version3_14_, pwm16_.id as id1_15_, pwm16_._counts as column2_1_15_, pwm16_._p_j as column3_1_15_, pwm16_._q_ij as column4_1_15_, pwm16_.version as version1_15_, sequenceli17_.id as id3_16_, sequenceli17_._bg_id as column6_3_16_, sequenceli17_._patterns as column2_3_16_, sequenceli17_._project_id as column7_3_16_, sequenceli17_.containing_split_id as containing8_3_16_, sequenceli17_.idInProject as idInProj3_3_16_, sequenceli17_.name as name3_16_, sequenceli17_.version as version3_16_ from gibbs_result_set_gibbs_results results0_ left outer join gibbs_results gibbssampl1_ on results0_.results_id=gibbssampl1_.id left outer join alignments alignment2_ on gibbssampl1_.alignment_id=alignment2_.id left outer join dicts dictionary3_ on alignment2_._input_dictionary_id=dictionary3_.id left outer join sequencelists sequenceli4_ on dictionary3_._sl_id=sequenceli4_.id left outer join bgs background5_ on sequenceli4_._bg_id=background5_.id left outer join sequencelists sequenceli6_ on background5_._sl_id=sequenceli6_.id left outer join projects project7_ on sequenceli6_._project_id=project7_.id left outer join gsresultsplit gsresultsp8_ on sequenceli6_.containing_split_id=gsresultsp8_.id left outer join gibbs_results gibbssampl9_ on gsresultsp8_.GSR_id=gibbssampl9_.id left outer join pwms pwm10_ on gibbssampl9_.pwm_id=pwm10_.id left outer join gibbs_result_set gibbssampl11_ on gibbssampl9_.result_set_id=gibbssampl11_.id left outer join globalpwms globalpwm12_ on gibbssampl11_.globalpwm_id=globalpwm12_.id left outer join gibbs_params gibbssampl13_ on gibbssampl11_.params_id=gibbssampl13_.id left outer join sequencelists sequenceli14_ on gsresultsp8_.lower_id=sequenceli14_.id left outer join sequencelists sequenceli15_ on gsresultsp8_.upper_id=sequenceli15_.id left outer join pwms pwm16_ on alignment2_._pwm_id=pwm16_.id left outer join sequencelists sequenceli17_ on alignment2_._sl_id=sequenceli17_.id where results0_.gibbs_result_set_id=?
13:17:31,210 DEBUG AbstractBatcher:426 - about to open ResultSet (open ResultSets: 0, globally: 0)
13:17:31,210 DEBUG Loader:1078 - result set contains (possibly empty) collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:17:31,211 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#1], EntityKey[de.bhc.gibbssampler.Alignment#1], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Background#1], null, null, null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#1], EntityKey[de.bhc.gibbssampler.SequenceList#1]
13:17:31,213 DEBUG Loader:1008 - found row of collection: [de.bhc.gibbssampler.GibbsSamplingResults.results#1]
13:17:31,214 DEBUG Loader:1197 - result row: EntityKey[de.bhc.gibbssampler.GibbsSamplingResult#2], EntityKey[de.bhc.gibbssampler.Alignment#2], EntityKey[de.bhc.gibbssampler.Dictionary#1], EntityKey[de.bhc.gibbssampler.SequenceList#1], EntityKey[de.bhc.gibbssampler.Background#1], null, null, null, null, null, null, null, null, null, null, EntityKey[de.bhc.gibbssampler.PWM#2], EntityKey[de.bhc.gibbssampler.SequenceList#1]
[...]


Könnte mir vielleicht jemand sagen, ob meine Mappings fehlerhaft sind?
Falls nicht, dann könnte ich vielleicht einen Bugreport abschicken?

Hier sind jeweils die SQL-Statements:
Broken SQL: http://www.pastey.net/133502
Working SQL: http://www.pastey.net/133503
Aber wie soll ich diese debuggen?

Vielen Dank!


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Sat Feb 27, 2010 7:48 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

als Workaround habe ich eine 1:1 Beziehung zwischen SequenceList und einer anderen Entität hinzugefügt,
damit tritt das Problem nicht auf.

Irgendwelche Ideen?

Danke,


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 3:03 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Tip: Ich wuerde mal, beide OneToMany Assoziationen von unidirektional zu bidirectional umwandeln.
(dazu must Du das mappedBy Attribute verwenden + die Gegenseite als ManyToOne definieren.)
Dadurch hast Du 2 Tabellen weniger und das riesige Join-query wuerde wesentlich einfacher und ueberschaubarer werden.


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 4:20 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

schonmal vielen Dank für die Antwort.

Es liegt zumindest auch an der Beziehung SequenceList<->Sequence:

Code:
select count(*) from projects project0_
left outer join projects_sequencelists hitlists1_ on project0_.id=hitlists1_.projects_id
left outer join sequencelists sequenceli2_ on hitlists1_.hitlists_id=sequenceli2_.id
where project0_.id=1;
=> 1 row


Code:
select count(*) from projects project0_
left outer join projects_sequencelists hitlists1_ on project0_.id=hitlists1_.projects_id
left outer join sequencelists sequenceli2_ on hitlists1_.hitlists_id=sequenceli2_.id
left outer join sequencelists_sequences list3_ on sequenceli2_.id=list3_.sequencelists_id
where project0_.id=1;
=> 10 rows


Zu deiner Idee mit der bidirektionalen Beziehung:

dafür müsste ich in SequenceList schreiben:

Code:
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER, mappedBy="sl")
[...]
protected List<Sequence> _list;


und ein neues Feld in Sequence mit:
Code:
@ManyToOne
private SequenceList sl;


Ist das korrekt?

Vielen Dank,


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 4:44 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Ja das ist korrekt.
Dasselbe wuerde ich fuer Project -- SequenceList vorschlagen.


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 6:04 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
Noch eine Frage: muss ich auf der Sequence (Many) Seite sicherstellen,
dass das Feld "sl" richtig gefüllt ist, oder macht Hibernate das?

Danke,


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 6:29 am 
Expert
Expert

Joined: Tue Jun 16, 2009 3:36 am
Posts: 990
Bei bidirectionalen Assoziationen muss man laut Hiberante Dokumentation immer beide Seiten setzen:
also
Code:
project.addSequenceList(sequencelist);
sequencelist.project = project;

sequencelist.addSequence(sequence);
sequence.sl = sequencelist;


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 9:29 am 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

wenn ich das für SequenceList<->Sequence so umsetze:

Code:
       public class SequenceList {
       [...]
   @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="sl")
   @org.hibernate.annotations.IndexColumn(name="indexcol_seqs")
   // this is necessary so that a Sequence object is deleted when it's removed
   // from the collection!
   @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL,
                                      org.hibernate.annotations.CascadeType.DELETE_ORPHAN})   
   protected List<Sequence> _list; // storage for sequences
        [...]


=> dann bekomme ich "null index column for SequenceList._list"
Und wenn ich die IndexColumn rausnehme, dann bekomme ich eine MultipleBagFetchException
(und um diese zu umgehen habe ich die IndexColumn mit reingeschrieben: Listensemantik erzwingen)

Wenn ich die IndexColumn auf nullable=false setze, dann bekomme ich beim Speichern:
Attempt to insert null into a non-nullable column: column: INDEXCOL_SEQS table: SEQUENCES

Das Problem ist hier beschrieben:
viewtopic.php?t=948004
=> aber was für eine @JoinColumn muss ich (auf beiden Seiten) deklarieren. Muss ich das Feld auch
im Java-code deklarieren?

Danke,


Top
 Profile  
 
 Post subject: Re: "Geisterinstanzen" beim Laden von @OneToMany-List
PostPosted: Mon Mar 01, 2010 6:21 pm 
Beginner
Beginner

Joined: Mon Jan 04, 2010 2:52 pm
Posts: 30
hallo,

das Problem konnte umgangen werden, indem die Session offen bleibt
und Lazy fetching verwendet wird.

vielen Dank für die Hilfe!


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

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.