-->
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: Many-To-Many Abfragen nur über HQL?
PostPosted: Fri Aug 12, 2005 11:52 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Hallo zusammen,

ich benutze zur Zeit die Hibernate Version 2.1 und habe folgende Fragestellung:
Ich habe eine Tabelle Standort und eine Tabelle Feiertag. Zwischen diesen beiden Tabellen besteht einen n-m-Beziehung aus der sich die Tabelle standort_feiertage ergibt. Nun möchte ich für einen bestimmten Zeitraum nur die Feiertage auslesen, die eine Beziehung mit einem bestimmten Standort haben. Das normale SSQL-Statement müsste dafür ja etwa so aussehen:
select f.feiertagID, f.bezeichnung from feiertag f, standort_feiertage sf where sf.standortID = 1 AND sf.feiertagID = f.FeiertagID AND f.datum>='01.01.2005' AND f.datum<='01.06.2005'

Ich habe bisher immer mit Criteria-Queries gearbeitet und würde das auch gern weiterhin hin tun, aber ich sehe keine Möglichkeit auf diese Art und Weise die n-m-Beziehung mit einfliessen zu lassen. Ich kann zwar zu einenm Standort alle passenden Feiertage auslesen, diese aber nicht zeitlich begrenzen. Hat ein ne Idee für mich?

Mfg Oliver


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 15, 2005 3:06 am 
Beginner
Beginner

Joined: Fri Feb 11, 2005 12:03 pm
Posts: 48
Location: Kiel, Germany
Hallo,

ohne genau zu wissen, wie deine Mappings aussehen, hab ich mich folgendem Criteria ein Ergebnis bekommen:

Code:
Criteria criteria = session.createCriteria(Feiertag.class);
criteria.add(Expression.between(
      "datum",
      dateFormat.parse("2005-12-01"),
      dateFormat.parse("2005-12-31")));
Criteria standortCriteria = criteria.createCriteria("standortSet");
standortCriteria.add(Expression.eq("standortId",new Integer(1)));


(standortSet ist die many-to-many-Property der Klasse Feiertag).

Die daraus resultierende Query war
Code:
select this.feiertag_id as feiertag1_1_, this.bezeichnung as bezeichn2_1_, this.datum as datum1_, x0_.standort_id as standort1_0_, x0_.bezeichnung as bezeichn2_0_ from feiertag this inner join standort_feiertag standortse1_ on this.feiertag_id=standortse1_.feiertag_id inner join standort x0_ on standortse1_.standort_id=x0_.standort_id where this.datum between ? and ? and x0_.standort_id=?


Falls diese Info dir nicht hilft, poste bitte deine Mappings und dann probiere ich es aus.

_________________
Please don't forget to rate if you find this posting useful.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 15, 2005 4:29 am 
Regular
Regular

Joined: Thu Jan 27, 2005 8:58 am
Posts: 80
Vielen Dank für die Hilfe.
Das war genau das was ich gebraucht habe!! Nachdem ich meine Quellen entsprechend ergänzt habe liefert mir Hibernate genau die richtigen Datensätze.

MfG

Olli[/code]


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.