Sql server 2008 是否将此SQL转换为HQL?(使用值而不是列进行左连接)
我试图将此SQL转换为HQL,但我找不到实现左连接的方法Sql server 2008 是否将此SQL转换为HQL?(使用值而不是列进行左连接),sql-server-2008,nhibernate,hql,left-join,castle,Sql Server 2008,Nhibernate,Hql,Left Join,Castle,我试图将此SQL转换为HQL,但我找不到实现左连接的方法 SELECT mdcs_causa.id_causa, usuarios.ds_usuario, usuarios.setor, empresas.ds_empresa, itens_controle.id_item_controle, itens_controle.ds_item, itens_controle.ds_indicador, itens_controle.ds
SELECT
mdcs_causa.id_causa,
usuarios.ds_usuario,
usuarios.setor,
empresas.ds_empresa,
itens_controle.id_item_controle,
itens_controle.ds_item,
itens_controle.ds_indicador,
itens_controle.ds_cliente,
itens_controle.desdobramento,
itens_controle.auxiliar,
itens_controle.bmk_nome,
itens_controle.bmk_vlr,
m.status,
m.medido,
m.medicao,
m.fca,
m.am_cronico,
m.ac_cronico,
m.ap_cronico,
m.id_medicoes as idmedicao,
itens_controle.prioridade
FROM
mdcs
INNER JOIN mdcs_causa
ON mdcs.id_mdc = mdcs_causa.id_mdc
INNER JOIN itens_controle
ON mdcs_causa.Id_Item_Controle = itens_controle.id_item_controle
INNER JOIN usuarios
ON usuarios.id_usuario = itens_controle.id_usuario
INNER JOIN empresas
ON empresas.id_empresa = usuarios.id_cliente_tabela
LEFT JOIN medicoes m
ON (
itens_controle.id_item_controle = m.id_item_controle
and
m.nm_ano = 2013
and
m.nm_periodo = 2
and
mdcs_causa.id_mdc = mdcs.id_mdc
)
WHERE
mdcs.id_mdc = 5077
我想我可以把nm\u ano
和nm\u periodo
条件放在where子句中,带有OR tom.id\u item\u控件为null
,但这个OR条件似乎不起作用,即使在SQL中也是如此
另一种方法是左连接子查询。这在SQL中起作用,但我认为HQL不支持这一点。可以通过
和
关键字来实现:
...
left join itens_controle.medicoes m with (m.nm_ano = 2013 and m.nm_periodo = 2 and mdcs_causa.id_mdc = mdcs.id_mdc)
where mdcs.id_mdc = 5077
您应该将它们作为参数提供,而不是显式值。
详情如下:
Query getEBills =session.createQuery( session.createQuery( from " EBill ebill EBill
ebill
left join ebill.accountTransaction where
ebill.balance > 500";
Li li f l bi i li () ist listOfRowValues = getDebitTransactions.list();
for (Object[] singleRowValues : listOfRowValues) {
// pull off the EBill // pull off the EBill
EBill ebill = (EBill)singleRowValues[0];
我在HQL方面没有任何经验,我已经为您粘贴了我发现的内容。希望这能对你有所帮助 好像是这样。一旦我解决了我的服务器的一些问题,我就会尝试它。