使用注释在hibernate中实现静态连接

时间:2009-11-14 02:39:16

标签: java hibernate join annotations

我对hibernate相对较新,并且想知道是否有人可以帮助我。 虽然使用

@JoinColumns
标记在hibernate中实现多列上的普通连接没有问题,但在尝试在注释中实现以下查询时我感到困惑:

SELECT A.* FROM TABLEA A
LEFT OUTER JOIN TABLEB B
ON A.UID = B.ID
AND B.NAME = 'JAY'

正如您所看到的,连接也基于一个不是列的值('JAY')。我不知道如何在注释中继续这样的映射。

有人可以帮忙吗?

谢谢, 杰

2 个答案:

答案 0 :(得分:0)

您不需要将b.name指定为连接条件。而只是将其指定为where子句的一部分。

SELECT A.* 
FROM TABLEA A 
LEFT OUTER 
JOIN TABLEB B ON A.UID = B.ID 
WHERE B.NAME is null or B.NAME = 'JAY'

答案 1 :(得分:0)

从您的问题中不清楚您是否尝试将其映射为HQL查询或关联。

我假设您正在讨论查询,TABLEATABLEB之间的关联已经通过A.UIDB.ID列进行了映射。在这种情况下,您可以使用with keyword编写查询:

select a.*
  from TableA a
  left join a.tableB b
  with b.name = 'JAY'

如果那不是您要找的,请澄清您的问题。