2011-05-29 4 views
1

Je ces deux classescomment écrire des critères hibernate requête pour deux tables différentes

@Table (name = "candidateinfo")

classe CandidateInfo {

.... @ OneToMany

CandidateResume candidat; ....

}

@Table (name = "candidateResume")

classe CandidateResume { ....

@ManyToOne

candidats CandidateInfo;

.......

}

Maintenant, je veux ajouter deux restrictoins de 2 classes différentes (comme ci-dessus) dans les critères ci-dessous

pour ce que j'ai

Critères crit = session.createCriteria (CandidateResumeInfo.class);

crit.add (Restrictions.eq ("resumeSearchable", 1)); // resumeSearchable est CandidateResume

crit.createCriteria ("candidat")

.add (Restrictions.eq ("userid", 1)); // l'ID utilisateur est dans la classe CandidateInfo

Liste rsList = crit.list(); // A cette ligne, il va à l'exception et ne donnant aucune erreur

pour (iterator = il rsList.iterator(); it.hasNext();)

Répondre

0

Pourriez-vous s'il vous plaît expliquer ce que vous essayez exactement pour chercher, mais si je vous comprends correctement, vous voulez rechercher tous les résultats où canditate id = 1 et candidateresume. interrogeable = 1;

Ensuite, vous devez faire quelque chose comme la requête suivante qui suit:

String query= "from Candidate c join c.candidate resume where c.userid = :userid and resume.resumeSearchable =: searchable"; 
Query q = session.createQuery(query); 
q.addInteger("userid",1); 
q.addInteger("searchable",1); 
List<Candidate> = q.list(); 
+0

Merci, oui, vous avez raison, je veux rechercher tous les résultats où canditate id = 1 et candidateresume. interrogeable = 1; mais le problème est que candidateid est dans une table ie CandidateInfo et consultable est dans une autre table ie candidateResumeInfo, alors comment le compilateur dans votre solution précédente saura quel attribut est de quelle table (classe) – junaidp

+0

Ceci est le problème Hibernate pas le vôtre . Dès que vous mappez correctement toutes vos classes, toutes les tables sont transparentes pour vous.vous travaillez avec des classes seulement. http://www.java2s.com/Code/Java/Hibernate/Relation-One-to-Many.htm –

+0

Merci, le lien que vous avez mentionné n'utilise pas d'annotation alors que j'utilise Annotation, vous avez une idée de comment utiliser la cartographie en annotation pour ce scénario, comme j'ai utilisé comme CandidateResumeInfo Classe {@OneToOne CandidateInfo candidat; est-ce tout ce que je dois faire? merci – junaidp

Questions connexes