-->
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.  [ 3 posts ] 
Author Message
 Post subject: Umstellung auf Hibenrate Version 3.0
PostPosted: Fri Aug 12, 2005 3:07 am 
Newbie

Joined: Thu Aug 11, 2005 8:47 am
Posts: 6
Hallo,
ich habe ein Problem bei der Umstellung von Version 2.1 auf Version 3.0 .

In meiner Anwendung habe ich ein "Course"-Objekt. Dieses verfügt über ein Set von "Assessment"-Objekten. Diese haben wiederum ein Set von "Result"-Objekten.
Hier kurz die relevanten Ausschnitte der Mapping Dateien:

Code:
<class
        name="de.ifis.orm.beans.usecase1.Course1"
        table="usecase1_courses"
    >

        <id
            name="id"
            column="id"
            type="java.lang.Long"
        >
            <generator class="native">
            </generator>
        </id>
        <set
            name="assessments"
            lazy="true"
            inverse="true"
            cascade="all"
            sort="unsorted"
        >

            <key
                column="course"
            >
            </key>

            <one-to-many
                  class="de.ifis.orm.beans.usecase1.Assessment1"
            />

        </set>
   ...
</class>

Code:
<class
        name="de.ifis.orm.beans.usecase1.Assessment1"
        table="usecase1_assessments"
    >

        <id
            name="id"
            column="id"
            type="java.lang.Long"
        >
            <generator class="native">
            </generator>
        </id>

        <many-to-one
            name="course"
            class="de.ifis.orm.beans.usecase1.Course1"
            cascade="none"
            outer-join="auto"
            update="true"
            insert="true"
            column="course"
        />

        <set
            name="results"
            lazy="true"
            inverse="true"
            cascade="all"
            sort="unsorted"
        >

            <key
                column="assessment"
            >
            </key>

            <one-to-many
                  class="de.ifis.orm.beans.usecase1.Result1"
            />

   ...
        </set>
    </class>


Code:
<class
        name="de.ifis.orm.beans.usecase1.Result1"
        table="usecase1_results"
    >

        <id
            name="id"
            column="id"
            type="java.lang.Long"
        >
            <generator class="native">
            </generator>
        </id>

        <many-to-one
            name="assessment"
            class="de.ifis.orm.beans.usecase1.Assessment1"
            cascade="none"
            outer-join="auto"
            update="true"
            insert="true"
            column="assessment"
        />
   ...
</class>


Ich möchte nun alle Course-Objekte haben, die über ein Assessment-Objekt verfügen, das noch keine Result-Objekte hat.
Dazu habe ich folgendes HQL Statement

Code:
SELECT DISTINCT a.course
FROM Assessment1 a
WHERE a.results.size = 0


mit Version 2.1 erhalte ich auch das gewünschte Ergebnis. Dazu wird folgendes SQL-Statement erzeugt:

Code:
select distinct course12_.id as id, course12_.client as client, course12_.name as name
from usecase1_assessments assessment0_, usecase1_courses course12_
where assessment0_.course=course12_.id and
  (((select count(*)
    from usecase1_results results1_
    where assessment0_.id=results1_.assessment)=0 ))


mit Version 3.0 wird folgendes, abgeändertes SQL erzeugt:

Code:
select distinct course1x1_.id as id, course1x1_.client as client1_, course1x1_.name as name1_
from usecase1_assessments assessment0_, usecase1_courses course1x1_, usecase1_results results2_
where assessment0_.id=results2_.assessment
and assessment0_.course=course1x1_.id
and    (select count(results2_.assessment)
   from usecase1_results results2_
   where assessment0_.id=results2_.assessment)=0


Das Ergebnis ist leer.
Kann es sein, dass der Ausdruck
Code:
assessment0_.id=results2_.assessment

nur Assessments für das Ergebnis zulässt, die bereits ein Ergebnis haben, und ich deswegen Assessments ohne Ergebnis gar nicht mehr erhalten kann?
Muss ich bei der Umstellung der Version auf 3.0 was Wichtiges beachten, damit das gleiche HQL wieder das gleiche Ergebnis liefet?
Für Hilfe wäre ich sehr dankbar
Viele Grüße


Top
 Profile  
 
 Post subject:
PostPosted: Wed Nov 16, 2005 7:57 am 
Newbie

Joined: Wed Nov 16, 2005 7:53 am
Posts: 1
Hallo!

Beim Suchen in diesem Forum bin ich gerade auf Ulis-Post gestoßen. Ich habe nämlich genau das gleiche Problem wie das, was er beschrieben hat.

Bevor ich jetzt alles nochmal beschreibe, dachte ich, ich hole seinen Post mal nach oben, vllt. hat ja jetzt jemand eine Idee?
Bzw. vielleicht liest Uli ja auch noch mit und kann mir helfen?

Bin für jeden Tip dankbar.

Grüße
Kirsten


Top
 Profile  
 
 Post subject:
PostPosted: Wed Nov 16, 2005 1:34 pm 
Newbie

Joined: Thu Aug 11, 2005 8:47 am
Posts: 6
Hallo
meiner Meinung nach ist das ein Fehler in Version 3.0
Ich hab im Moment Version 3.1 laufen.
Dort tritt das Problem nicht mehr auf.
Die Umstellung von Version 3.0 auf 3.1 ist kein Problem, da Packagestruktur nicht mehr geändert hat :)
Sollte doch noch was anderes mit reinspielen, wäre ich über andere Hinweise weiterhin sehr dankbar
Viele Grüße


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.