Java 用于简单SQL联接的HQL查询

Java 用于简单SQL联接的HQL查询,java,sql,hibernate,hql,Java,Sql,Hibernate,Hql,如何在加入HQL中应用2个条件 我想为下面的查询编写HQL Select * from Employee e left join fetch Salary s on s.sal in (1000,2000); 我的问题是:我们如何对join应用多个条件。我心里知道,, 查询的执行方式如下 select * from Employee e left join Salary s on s.id = e.id 但是我如何为不止一个条件编写hql呢? 我希望我的问题得到澄清?一个有效的HQL查询如下

如何在加入HQL中应用2个条件 我想为下面的查询编写HQL

Select * from Employee e
left join fetch Salary s on s.sal in (1000,2000);
我的问题是:我们如何对join应用多个条件。我心里知道,, 查询的执行方式如下

select * from Employee e
left join Salary s on s.id = e.id
但是我如何为不止一个条件编写hql呢?
我希望我的问题得到澄清?

一个有效的HQL查询如下所示:

select e, s 
from Employee e left join e.salary s with (s.sal in (1000,2000))

这假设
Employee
实体有一个
Salary
字段
Salary
。如果我禁用了名称,则更改查询。

原始SQL查询是什么样子的?sb.append(“来自硬件组件h”);sb.append(“左连接获取h.HWCategoriy4 c4”);sb.append(“左连接获取c4.HWC3类别”);sb.追加(“其中h.konto.sisnetConfigSwitch=1”);sb.append(“h.technischeNr不为空”);sb.附加(“和上面(c3.HWcategoriy3)类似:cat3”);sb.append(“和h.lifecycleSubStat.lcSubStatId不在(”);sb.append(Constants.HARDWARECOMPONENT\u STATE\u ID\u CLOSING);sb.append(“)”;rtn=cachingHibernateTemplate.findByNamedParam(sb.toString(),参数,值);我知道JPA/hibernate在内部处理ON条件,但如果我想再处理一个ON条件怎么办?很显然,我只是举了一个例子来找出多个条件的hql,我不知道是怎么回事。根据HQL文档,这应该是可行的。我正在使用left join fetch,它对fetch也有效吗?我不确定,但如果您询问添加
fetch
是否会破坏查询,我预计不会。我在使用“with”时遇到异常情况。发生了意外错误。详细信息:获取的关联上不允许with子句;使用过滤器这是我在java类中的hibernte查询<代码>StringBuffer sb=新的StringBuffer();sb.附加(“来自硬件组件h”);sb.append(“左连接fetch h.hwCategory4 c4与(上(c3.hwCategory3)类似:cat3)”;sb.append(“使用(h.konto.sisnetConfigSwitch=1)左连接fetch c4.hwCategory3 c3”);(b)附加(“何处”);sb.追加(“h.technischeNr不为空”)