juste commencé à utiliser JPA aujourd'hui, donc je suis preety nouveau à elle.
Comment dirait-on "SELECT login.ID, userID, logInTime, logOutTime, user.ID AS 'uID', surname FROM login, user WHERE login.userID = user.ID"
dans JPA?
Je dois joindre deux tables via l'ID utilisateur.
J'ai regardé quelques tutoriels sur le net, mais je ne pouvais pas vraiment trouver la réponse à cela.
Merci!requête SQL à JPA se joint à
Répondre
En supposant que la connexion et l'utilisateur sont maintenant des objets, et en supposant également que la relation entre la connexion et l'utilisateur sont qu'un utilisateur a beaucoup de connexions seront somthing comme celui-ci
select
L.ID,
u.userID,
L.logInTime,
L.logOutTime,
u.ID
from
User U,
IN(u.logins) L /*note that the IN makes the inner join between Login and user*/
Renember Je suppose la correspondance entre la entités
Les requêtes JPQL sont écrites sur des objets et non sur des tables. Il est impossible d'écrire une requête sans savoir quels sont les objets et comment la relation entre eux est définie.
Vous devez d'abord créer des objets Entity représentant un Login
et un User
. Vous mappez une relation entre eux, puis cela devient la jointure pour la requête.
Wildly spéculant Je devinerais que votre modèle de domaine comprend au moins deux entités User
et Login
avec ce dernier représentant quelque chose comme une session. (Cardinalité User
-1: n Session
)
Mes entités imaginaires:
@Entity
class User {
@OneToMany(mappedBy="user")
private List<Login> logins;
...
}
@Entity
class Login {
@ManyToOne
private User;
...
}
Pour récupérer tous les Login
s:
jpql: "from Login"
(Les objets User
associés sont récupérés par Par défaut, au niveau de @ManyToOne, le type de récupération par défaut est la récupération désirée.)
Pour récupérer tous les User
s:
jpql: "select u from User u join fetch u.logins"
(Les objets List<Login>
associés ne sont pas récupérés par défaut. Du côté @OneToMany le type de récupération par défaut est fetching paresseux)
Mise en route avec JPA:.. openJPA documentation (Jetez un oeil au chapitre 4 et 5 pour la conception de l'entité et le chapitre 10 pour JPQL Les parties générales JPA du OpenJPA la documentation correspond à toutes les implémentations de JPA.)
PS Ce serait plus facile si vous posiez un peu plus de détails dans vos questions.
- 1. gauche se joint à LINQ to SQL
- 2. LINQ - Se joint à une requête dynamique
- 3. Qui se joint à LINQ?
- 4. Aide HQL se joint à
- 5. Se joint à nhibernate fluent
- 6. gauche se joint à Grails
- 7. SQL Elaborate joint la requête
- 8. MySQL se joint à la clause WHERE
- 9. LINQ to SQL LoadWith Mutilple se joint à
- 10. Se joint à SQL Server 2000 ou 2005
- 11. SQL se joint à la requête ne pas agir en voulait
- 12. MySQL Insérer et se joint à
- 13. Se joint à d'autres méthodes dans mySQL
- 14. sql se joint et s'y habitue
- 15. JPA - mappage d'entité à sql?
- 16. JPA requête beaucoup à une association
- 17. Rejoindre 3 tables - faire se joint à comment
- 18. Se joint à plusieurs champs sur les données de table GroupBy dans la requête/méthode LINQ
- 19. SQL se joint à plusieurs enregistrements en un avec une valeur par défaut
- 20. App se bloque! (Journal joint)
- 21. Se joint à SQL pour récupérer les données de deux tables
- 22. SQL Server 2008 Mise à jour requête avec JOIN et clause Where dans le tableau joint
- 23. Se joint au gestionnaire REST de SubSonic
- 24. jointure interne à SQL sous-requête
- 25. MySQL se joint pour le flux d'amis
- 26. comment écrire une requête JPA
- 27. requête SQL à LINQ
- 28. Requête JPA pour DTYPE
- 29. SQL joint dans les rails
- 30. Comment faire se joint aux conditions?
Pourriez-vous décrire votre modèle de domaine? Sinon, il est difficile de vous conseiller sur l'écriture de requêtes JPQL. –