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 :

Modifier le type de paramètre de la fonction find(object id) dans un les entities


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 15
    Points : 22
    Points
    22
    Par défaut Modifier le type de paramètre de la fonction find(object id) dans un les entities
    Bonjour à tous, j'ai fait le mapping de ma bd avec eclipseLink en utilisant l'ide netbeans. et chaque entity class a un certain nombre de methodes parmi lesquels "find()", mon souci est que cette méthode ne prend en paramètre que les identifiants qui sont de type integer, j'aimerai savoir s'il ya moyen d'indiquer un autre tye d'élément à rechercher tel que le login ou le mdp. Dans l'une de mes classes il ya par exemple les annotations suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @NamedQuery(name = "Actes.findAll", query = "SELECT a FROM Actes a"),
        @NamedQuery(name = "Actes.findByIdactes", query = "SELECT a FROM Actes a WHERE a.idactes = :idactes"),
        @NamedQuery(name = "Actes.findByLibactes", query = "SELECT a FROM Actes a WHERE a.libactes = :libactes"),
        @NamedQuery(name = "Actes.findByPrixactes", query = "SELECT a FROM Actes a WHERE a.prixactes = :prixactes"),
        @NamedQuery(name = "Actes.findByDescactes", query = "SELECT a FROM Actes a WHERE a.descactes = :descactes"),
        @NamedQuery(name = "Actes.findBySaveactes", query = "SELECT a FROM Actes a WHERE a.saveactes = :saveactes")})
    Ya til moyen de les utiliser???? Merci d'avance pour toutes vos réponses

  2. #2
    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
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,
    Je ne saisis pas très bien ce que vient faire une méthode "find()" dans une entité, si on parle bien d'une entité au sens JPA.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java/JavaEE
    Inscrit en
    Août 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java/JavaEE

    Informations forums :
    Inscription : Août 2014
    Messages : 194
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je suis bien d'accord avec DevServlet. Cette méthode dois figuré dans ton package DAO ou services ... mais pas dans l'entité elle même (si tu crois au design pattern).
    Mais sinon tu peux développer ta propre méthode qui te permet de récupérer l'objet souhaitable avec les critère que tu spécifie.
    Je te file un exemple d'authentification implémenté avec JPQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public User authenticate(String login, String password) {
    		User found = null;
    		String jpql = "select u from User u where u.login=:login and u.password=:password";
    		Query query = em.createQuery(jpql);
    		query.setParameter("login", login);
    		query.setParameter("password", password);
    		try{
    			found = (User) query.getSingleResult();
    		}catch(Exception ex){
    			Logger.getLogger(AuthenticationService.class.getName()).log(Level.WARNING, "authentication attempt failure with login="+login+" and password="+password);
    		}
    		return found;
    	}

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/09/2014, 09h58
  2. Fonction Find ne marche pas à tous les coups...
    Par silvere123 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/08/2012, 15h54
  3. Réponses: 8
    Dernier message: 18/09/2011, 19h41
  4. Forcer le type des paramètres d'une fonction
    Par Teocali dans le forum Général Python
    Réponses: 9
    Dernier message: 14/08/2010, 20h17
  5. Problème de type de variable avec la fonction find
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/11/2008, 17h06

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