IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Jointure en hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut Jointure en hibernate
    Bonjour ,

    Je suis débutante en hibernate ,je travaille dans un projet j2ee(Spring2+Struts2+JPA) ,j'ai besoin de faire un filtrage sur ma base de donnée à partir de plusieurs champs de saisis ,donc au niveau hibernate faire une jointure entre plusieurs tables pour afficher le resultat correspondant ,pour cela on m'a dit qu'il faudrait utiliser le @OneToMany sur mes POJO et c'est la que je bloque !! j'ai regardé plusieurs tutoriels sur ça et j'arrive pas à l'appliquer sur mes tables !

    je vous donne un exemple de deux tables ou je veux établir une jointure :

    Location(id_loc , loctype , id_division)
    Division(id_division , zdivision )


    quelqu'un pourrait m'expliquer comment proceder avec ces deux tables ?

    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    http://www.hibernate.org
    => section documentation

    Regarde du côté d'une relation many-to-one, tu auras simplement à adapter l'exemple de la documentation.

  3. #3
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Bonjour,

    Merci pour votre réponse ,une autre question ...une fois le mapping est fait ,au niveau de la requéte hql ,dois-je faire des jointures comme en sql ? pour avoir le resultat à partir de plusieurs tables ?
    merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Pas forcément, tu peux écrire quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    from Location
    where division.zdivision = ...
    Le jointure entre Location et Division est implicite.

  5. #5
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    Merci beaucoup !
    j'ai une autre question si vous le permettez ..

    En fait ,j'ai fait le mapping ,il fonctionne bien pour chaque table séparément ,j'essaye de faire un filtrage avec plusieurs critères de sélection ,et la il me renvoit l'adresse de l'objet et pourtant j'avais mis un "toString()" sur mes POJO et ça marche pas que pour le multicritére .

    je vous file ma requéte ,quelqu'un voudrait me la corriger si la syntaxe est fausse ? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query req = getEntityManager().createQuery("SELECT ob1 , ob2 , ob3 , ob4 , ob5 , ob6 " +
    				"FROM " +nomObject1 + " as ob1 ," + nomObject2 + " as ob2 ," +nomObject3+ 
    				" as ob3 ," +nomObject4+ " as ob4 ," +nomObject5+ 
    				" as ob5 ," +nomObject6+ " as ob6 " + " WHERE " +
    				"(ob1.landx LIKE '%" +condition1+ "%') " +
    				"AND (ob2.zgm43 LIKE '%" +condition2+ "%')" +
    				"AND (ob3.zzone_des LIKE '%" +condition3+ "%') " +
    				"AND (ob4.zregion_des LIKE '%" +condition4+ "%') " +
    				"AND (ob5.zsubregion_des LIKE '%" +condition5+ "%') " +
    				"AND (ob6.zdivision_des LIKE '%" +condition6+ "%') ");

  6. #6
    Membre confirmé Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Par défaut
    j'ai oublié de rajouter ...il me renvoir [Ljava.lang.Object;@15e00b7 par exemple

  7. #7
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Par défaut Jointure avec hibernate
    Bonjour
    SVP j'ai besoin de votre aide, j'ai une question, j'ai 3 tables
    * Groupes(idgroupe,nomgroupe,commentairesgroupe) " une table qui contient une liste de groupes "

    * Personnes(idpersonne,nompersonne,prenompersonne) " une table qui contient une liste de personnes"
    * Grppers(idgrppers,idgroupe,idpersonne) " une table qui associe une personne à un groupe"
    cet exemple je l'ai trouvé sur les cours et tutoriels pour apprendre Java : http://java.developpez.com/cours/

    mon problème c'est quand je veux par exemple retrouver un groupe, créer une nouvelle personne et l'ajouter au groupe trouvé.

    la console d'eclipse me retourne l'erreur suivante:



    010 03:50:50 net.sf.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 2.1.6
    10 mai 2010 03:50:50 net.sf.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    10 mai 2010 03:50:50 net.sf.hibernate.cfg.Environment <clinit>
    INFO: using CGLIB reflection optimizer
    10 mai 2010 03:50:50 net.sf.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    10 mai 2010 03:50:50 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    10 mai 2010 03:50:50 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: Personnes.hbm
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.allah.hibernate.Personnes -> personnes
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: Grppers.hbm
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.allah.hibernate.Grppers -> grppers
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: Groupes.hbm
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.allah.hibernate.Groupes -> groupes
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration doConfigure
    INFO: Configured SessionFactory: null
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-many association mappings
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Binder bindCollectionSecondPass
    INFO: Mapping collection: com.allah.hibernate.Personnes.GrppersSet -> grppers
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Binder bindCollectionSecondPass
    INFO: Mapping collection: com.allah.hibernate.Groupes.GrppersSet -> grppers
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-one association property references
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing foreign key constraints
    10 mai 2010 03:50:51 net.sf.hibernate.dialect.Dialect <init>
    INFO: Using dialect: net.sf.hibernate.dialect.MySQLDialect
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Maximim outer join fetch depth: 2
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use outer join fetching: true
    10 mai 2010 03:50:51 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Using Hibernate built-in connection pool (not for production use!)
    10 mai 2010 03:50:51 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: Hibernate connection pool size: 20
    10 mai 2010 03:50:51 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://:3306/base3
    10 mai 2010 03:50:51 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
    INFO: connection properties: {user=root, password=brandy}
    10 mai 2010 03:50:51 net.sf.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
    INFO: Transaction strategy: net.sf.hibernate.transaction.JTATransactionFactory
    10 mai 2010 03:50:51 net.sf.hibernate.util.NamingHelper getInitialContext
    INFO: JNDI InitialContext properties:{}
    10 mai 2010 03:50:51 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
    10 mai 2010 03:50:51 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use scrollable result sets: true
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use JDBC3 getGeneratedKeys(): true
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Optimize cache for minimal puts: false
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query language substitutions: {}
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: cache provider: net.sf.hibernate.cache.EhCacheProvider
    10 mai 2010 03:50:51 net.sf.hibernate.cfg.Configuration configureCaches
    INFO: instantiating and configuring caches
    10 mai 2010 03:50:51 net.sf.hibernate.impl.SessionFactoryImpl <init>
    INFO: building session factory
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test2.main(Test2.java:8)
    Caused by: java.lang.RuntimeException: Exception building SessionFactory: Object class com.allah.hibernate.Groupes must declare a default (no-argument) constructor
    at com.allah.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:15)
    ... 1 more
    Caused by: net.sf.hibernate.PropertyNotFoundException: Object class com.allah.hibernate.Groupes must declare a default (no-argument) constructor
    at net.sf.hibernate.util.ReflectHelper.getDefaultConstructor(ReflectHelper.java:138)
    at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:562)
    at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:716)
    at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:42)
    at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:136)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:791)
    at com.allah.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:13)
    ... 1 more

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jointure avec Hibernate
    Par bylka dans le forum Hibernate
    Réponses: 39
    Dernier message: 01/09/2011, 11h57
  2. Jointure avec hibernate
    Par Derf4002 dans le forum Hibernate
    Réponses: 10
    Dernier message: 23/05/2008, 12h53
  3. Jointure avec Hibernate via Criteria
    Par Spir dans le forum Hibernate
    Réponses: 3
    Dernier message: 05/03/2008, 15h12
  4. [hibernate] charger la jointure
    Par agougeon dans le forum Hibernate
    Réponses: 3
    Dernier message: 26/04/2006, 18h13
  5. [Hibernate] Jointures externes
    Par eXiaNazaire dans le forum Hibernate
    Réponses: 2
    Dernier message: 21/03/2006, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo