当前位置: 首页 > 知识库问答 >
问题:

如何在hibernate条件中编写以下查询

景河
2023-03-14
Select * from Table A left join Table B on A.id=B.id and A.langCode='IN';

其中“in”是来自用户的输入。

Select * from Employee Emp left outer join Employee_Lang EmpLang on Emp.EMP_ID=EmpLang.EMP_ID AND EmpLang.LANG_CODE='IN'

我只从hibernate中的两个表中映射了Emp_Id作为主键,因此hibernate条件将只对该表应用联接,而不对Langcode应用联接。

注意:-我不能更改hibernate映射,只能使用hibernate标准,根据客户的要求,请帮助我。

共有1个答案

阎修杰
2023-03-14

例如,您有两个模型:

@Entity
class Employee {
  @Id
  private Long id;
  @OneToOne
  private EmployeeLang employeeLang;
  ...
}
@Entity
class EmployeeLang {
  @Id
  private Long id;
  private String langCode;
  @OneToOne
  private Employee employee;
  ...
}

您应该在它们之间进行一些映射,然后可以执行下一个标准:

Criteria criteria = session.createCriteria(Employee.class);
criteria.createAlias("employeeLang", "empLang"); // inner join with EmployeeLang
criteria.add(Restrictions.eq("empLang.langCode", "in");

List<Employee> employees = criteria.list();
 类似资料:
  • 我有一个索引,其中一些文档有一个名为“access_type”的字段。它可以有两个值,要么是“教师”,要么是“学生”。对于“access_type”的值为“afully”的文档,将有另一个名为“faculties”的字段,这是一个学院名称列表。因此,一个示例文档如下所示: 现在,如果我们有两个输入,比如说一个用于access_type,另一个用于facculties。如果我得到以下输入“facul

  • 问题内容: 我有一个用于Elasticsearch的简单JSON查询,如下所示: 仅当值(在这种情况下为“ a1”)不为空时,才如何执行第二个“必须”条件? 问题答案: 您可以使用以下方法实现它-

  • 我有一个sql查询: 这就产生了: Hibernate:选择this_.pName为y0_,this_.kNum为y1_,count(distinct this_.agentg)为y2_from Test_CPView this_where(低(this_.pName+“~”+this_.kNum)like?或低(this_.pName+“~”+this_.kNum)like?或低(this_.p

  • 问题内容: 我正在使用MySQL,并且想在SQL中执行一种三元语句,例如: 结果将类似于: 如何做到这一点? 问题答案: