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

JPA Java Discussion :

Comparer des instances ?


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut Comparer des instances ?
    Bonsoir,
    j'essaye de faire une requête JPQL sur une table en comparant des objets, mais sa marche pas,
    voilà mes table : (j'utilise Oracle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    table User [login(PK), nom, prenom,....]
    table Domaine[idDom[PK], libelle,....]
    table ensemble[idEns(PK), nom, loginUser(FK vers User), idDom(FK vers Domaine, ...)]
    ma classes de mapping ensemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    @Entity
    @Table(name = "ENSEMBLE")
    publi class Ensemble{
    @Id
    @Column(name = "IDENS", unique = true, nullable = false)
    private long idEns
     
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "LOGINUSER")
    private User user;
     
     
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "IDDOM")
    private Domaine domaine;
    }
    dans ma classe DAO, je voudrai faire une requete genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Query query = em.createQuery("select x from Ensemble x where x.user="+user+" and x.domaine="+domaine ); 
    //em= EntityManager
    //user est l'entity user
    est-ce que sa marche comme ça ?
    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Par défaut
    Problème de QUOTE englobant user & domaine
    +
    Problème de casse ?

    Spec JPA Query: Keywords in JPQL expressions are case-insensitive, but entity, identifier, and member names are not.

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Par bon ton truc, tu fais des concaténations qu'il faut pas quand tu fais du JPQL (ou même du JDBC natif) tu ne peux faire que des requetes paramétrées nommées ou indexées, donc si t'es en nommé t'auras ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query query = em.createQuery("select x from Ensemble x where x.user.id=:idUser and x.domaine=:paramDomaine");
    et au moment de ton setParameter tu passes les bon params.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut
    ta raison DevServlet
    il suffit de faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Query query = em.createQuery("select x from Ensemble x where x.user.login='"+user.getLogin()+"' and x.domaine.idDom='"+domaine.getIdDom()+"'");
    //avec les quotes bien sûr :mouarf:
    Merci

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

Discussions similaires

  1. Conditions de destruction des instances de classes
    Par elvivo dans le forum Général Python
    Réponses: 4
    Dernier message: 29/12/2004, 18h16
  2. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/10/2004, 16h15
  3. comparer des sons
    Par heidi79 dans le forum DirectX
    Réponses: 2
    Dernier message: 12/08/2003, 02h18
  4. [LG][FAQ]comparer des fichiers
    Par lucke dans le forum Langage
    Réponses: 11
    Dernier message: 01/06/2003, 19h02
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 23h37

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