【问题标题】:Adding more than one class in hibernate criteria在休眠条件中添加多个类
【发布时间】:2025-12-14 11:30:01
【问题描述】:

我有下面的代码

ArrayList<String> city = 'Anniston';

Criteria  crit = session.createCriteria(CandidateResumeInfo.class);

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

现在我想添加以下条件

crit.add(Restrictions.in("cities", city));

但问题是城市列不在 CandidateResumeInfo.class 中,而是在 CandidateInfo 类中。

知道如何在上述条件中添加此条件,如何在上述条件中添加 CandidateInfo 类。

我想我需要加入或链接这两个表,但是如何,实体类中是否会有任何变化?

谢谢

【问题讨论】:

  • 能贴出这两个类的实现吗?
  • @Entity @Table(name="candidateinfo") 公共类 CandidateInfo 实现 java.io.Serializable { private int id;私人字符串名;私人字符串姓氏;私人字符串城市;私有字符串 stateProvince;私人字符串 zip;私有字符串国家; public CandidateInfo() { } @Column(name="userid") public int getId() { return this.id; } @Column(name="loginname") public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; }

标签: hibernate hibernate-criteria


【解决方案1】:

你没有描述你的联想,但我认为它会像

class CandidateResumeInfo {
  @OneToOne
  CandidateInfo candidate;
}

在这种情况下,您需要类似的东西

ses.createCriteria(CandidateResumeInfo.class)
      .add(Restrictions.eq(...))
      .addCriteria('candidate')
      .add(Restrictions.in('cities',city);

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html

检查有关关联的部分。

【讨论】:

  • 谢谢我有这个@Table(name="candidatResumeInfo") Class CandidateResumeInfo{ .... @OneToOne CandidateInfo Candidates; .... } 然后我有.. Criteria crit = session.createCriteria(CandidateResumeInfo.class); crit.add(Restrictions.eq("resumeSearchable", 1));// resumeSearchable 在 CandidateResume crit.createCriteria("candidate") .add(Restrictions.eq("userid",1)); // userid 在 CandidateInfo 类列表中 rsList = crit.list(); //这是下一行在这一行它进入异常并且没有给出任何错误
  • 我很乐意为您提供帮助,但请编辑您的问题并以格式化的形式添加所有代码。否则很难破译。其次,This is the next line At this line it goes to exception and not giving any error - 有什么例外?堆栈跟踪?也将其添加到问题中。最后,您是否注意到我使用了candidate 而您说您的班级使用了candidates 属性名称?请更改您的代码以在条件中使用candidates,看看是否有帮助。
  • 我已经把所有的东西都放在了答案下面(因为它没有在这里格式化),请尝试解决非常感谢您的关注
  • 我什么也没看到。编辑您的问题并将其放在那里。你试过正确的名字candidates吗?
  • 是的,我检查了候选的东西,我改变了它,没有效果,我为此发布了一个新问题,标题为添加两个不同的表是一个单一的标准(加入)请检查谢谢你