Hibernate, sql

ourysho Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
ourysho Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
bonjour,
j'ai des difficultés de comprendre la différence entre 2 choses que je vois tout le temps dans les Dao et qui fonctionne dans les 2 cas.
Ma question est de savoir: au moment de faire mes requêtes, quand est ce qu'on utilise les noms des champs champs et de l'entité correspondant en base. et quand on utilise les noms et les champs de l'entité directement.

voici un exemple ci dessous avec 2 methodes. Les methodes ne sont pas completes mais c'est les lignes ou j'ai les Query qui sont importantes.

Je vous remercie pour le temps que vous prendrez pour que je puisse comprendre

@Entity
@Table(name = "PERSONNE_P")
public class Personne {
 
 @Id
        @Column(name = "ID_P")
 private Long id;

 @Column(name = "NOM_P")
 private String nom;
      }

1ere facon en prenant le non de l'entité et les champs tel que définis

public Personne chercher(long idpersonne){
Query requete = entityManager.createQuery("select p.nom from Personne p where p.id = :idpersonne");
.................
..................
return Personne
}


2ieme façon en prenant le non de l'entité et les champs correspondant en base des données

public Personne chercher(long idpersonne){
 Query requete = entityManager.createQuery("select p.NOM_P from PERSONNE_P p where p.ID_P = :idpersonne");
.................
..................
return Personne
}


cordialement
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Je ne suis pas expert en Hibernate (et je déteste ça ^^) mais tu es sûr que ton 2è code fonctionne ? Il me semble que ce n'est correct que si tu utilises createNativeQuery à la place de createQuery.
1
ourysho Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Merci KX de m'avoir répondu ci rapidement. j'ai vérifié les exemples que je lisais effectivement le 2ieme code utilise à chaque fois createNativeQuery au lieu de createQuery. Pour l'instant je me contente de ta réponse en attendant de chercher un peu comment ça fonctionne et le pourquoi.
0