-->
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.  [ 6 posts ] 
Author Message
 Post subject: Problème de requêtea
PostPosted: Thu Dec 21, 2006 11:12 am 
Newbie

Joined: Thu Dec 21, 2006 11:01 am
Posts: 12
Bonjour,

En fait voila, j'ai trois tables dont une faisant une relation un-à-plusieurs.
Pour l'exemple :

Enterprise (idEnterprise, Name)
TargetCountry (idEnter, targetCountry)
Country(countryName)

Et bon ce que je voudrais, c de pouvoir aller rechercher les country à partir de l'id d'une entreprise.

En sql ca ferais ca :

SELECT Country.countryName FROM Country, TargetCountry, Enterprise WHERE Country.countryName = TargetCountry.countryName AND TargetCountry.idEnter = Enterprise.idEnterprise AND Enterprise.idEnteprise = 2;

Alors bon c ptet tout con mais je n'arrive pas à faire cette requête la en hql (ou même avec une criteria) ...

Quelqu'un saurait-il m'aider ?

Merci d'avance


Top
 Profile  
 
 Post subject:
PostPosted: Thu Dec 21, 2006 3:17 pm 
Expert
Expert

Joined: Tue Dec 28, 2004 7:02 am
Posts: 573
Location: Toulouse, France
Répondu ici : http://forum.hibernate.org/viewtopic.ph ... 02#2334902 :-).

En anglais, requête sql, on traduit plutôt query pour info.

@++

_________________
Baptiste
PS : please don't forget to give credits below if you found this answer useful :)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 22, 2006 6:44 am 
Newbie

Joined: Thu Dec 21, 2006 11:01 am
Posts: 12
Merci bien, ben je continue en français alors ;-)

enfin de toute façon ca ne marche pas encore :'(

en fait voila mes classes :

Enterprise :
private Integer idEnterprise;
private Set targetcountries = new HashSet(0);

TargetCountry :
private TargetcountryId id;

TargetCountryId :
private Enterprise enterprise;
private Country country;

Country :
private String countryName;
private Set targetcountries = new HashSet(0);

Enfin voila, j'espère que tu saura quoi faire avec ca ...

Merci d'avance


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 22, 2006 7:02 am 
Expert
Expert

Joined: Tue Dec 28, 2004 7:02 am
Posts: 573
Location: Toulouse, France
Tu as essayé ce que j'ai dit ?
Quote:
What do look like your objects? Think about objects to do this query. Something like

Code:
Country yourCountry = (Country)session.createQuery("from Country c inner join c.enterprise").uniqueResult();


(uniqueResult() is an helper method on the session to be used when waiting for one result exactly)

C'est quoi l'erreur que tu obtiens ?

_________________
Baptiste
PS : please don't forget to give credits below if you found this answer useful :)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 22, 2006 7:19 am 
Newbie

Joined: Thu Dec 21, 2006 11:01 am
Posts: 12
oui oui bien sur,

voila l'erreur

org.hibernate.QueryException: could not resolve property: enterprise of: com.hibernate.mapping.Country [from com.hibernate.mapping.Country c inner join c.enterprise]
at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:37)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1310)
at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:280)
at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:373)
at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:539)
at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:221)
at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:172)
at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
at org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:318)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3275)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3067)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at com.persistency.PEnterprise.getTargetCountriesByIdEnterStr(PEnterprise.java:509)
at com.test.Test.main(Test.java:118)

Mais de toute façon meme si ta méthode est bonne, je vais devoir la modifier, parce qui faut que ca me retourne une liste de country étant donné que une entreprise peut avoir plusieurs targetcountry... d'où l'utilisation d'un set de targetcountry...


Top
 Profile  
 
 Post subject:
PostPosted: Wed Dec 27, 2006 6:13 am 
Newbie

Joined: Thu Dec 21, 2006 11:01 am
Posts: 12
personne n'aurais une idée ?


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