J'ai une table Utilisateurs qui contient deux types d'utilisateurs différents (A et B). Les utilisateurs de type A peuvent avoir des relations avec des utilisateurs de type B (qui sont enregistrés dans une table Relations). Le nombre de relations qu'un utilisateur de type A peut avoir avec des utilisateurs de type B est enregistré dans un champ d'une autre table.Utilisation d'Hibernate pour extraire des enregistrements en fonction du nombre d'enregistrements dans une autre table
Je souhaite que Hibernate renvoie tous les utilisateurs de type A dont toutes les relations ne sont pas établies. J'ai une requête SQL qui va le faire. Qu'est-ce que je dois faire?
EDIT
J'ai réussi à obtenir ce travail en lançant ma requête dans un session.createSQLQuery(), mais il semble bizarre d'avoir un bloc de SQL au milieu de tout cela au point, génial code hibernate. Je pense que je préfère l'avoir dans les objets HSQL ou Hibernate, si possible.
C'est le pseudo-requête que je suis en train de se convertir à l'HSQL:
select userId
from (
select user_id, max_mentees, count(connection_id) num_mentees
from user_table
join mentor on mentor_id = user_id and user_status = 'ACTIVE'
left join connections on connection_mentor_id = mentor_id
and connection_status = 'ACTIVE' and connection_end > sysdate
group by user_id, max_mentees, connection_id
)
where (max_mentees > num_mentees)
group by user_id
'Je veux que Hibernate retourne tous les utilisateurs de type A qui n'ont pas toutes leurs relations établies Quand? En faisant quoi? –
Fondamentalement, les utilisateurs A seront les mentors des utilisateurs B et un utilisateur a une limite de combien de "mentorés" ils peuvent avoir à la fois. Le nombre est de voir combien d'utilisateurs B (mentoré) sont assignés à l'utilisateur A (mentor) afin que nous puissions le comparer au nombre limite dans l'autre table. –