1
我正在使用Hibernate映射到我无法更改的遗留数据模型。对于特定的查询,我试图构建一些使用包含多个属性的连接条件的HQL。我有一个可怕的人为的例子,说明什么,我想实现:Hibernate条件HQL加入
考虑类Consumer
和它的两个特性 - 无论Gadget
类型:
@Table(name = "consumer")
class Consumer {
@Column(name = "mp3_player")
Gadget mp3Player;
@Column(name = "mobile_phone")
Gadget mobilePhone;
...
注意,consumer
表有两个外键gadget
表 - 不理想 - 但这是我必须与之合作。我想获得名为'iphone'的Gadgets
列表,Consumer
'bob'用作MP3播放器或电话。用postgres我可以写:
select gadget.*
from consumer join gadget on (
consumer.mp3_player = gadget.id or consumer.mobile_phone = gadget.id
)
where consumer.name = 'bob' and gadget.name = 'iphone';
我试图用HQL来表达这个查询,但它似乎要求连接子句只包含一个条件。那么如何在HQL中表达类似的查询呢?
感谢您的回复 - 我意识到我错过了一些细节问题,所以现在就更新。 – teabot 2012-03-16 11:55:34
好的,事实证明我问的是错误的问题 - 我的歉意。这个问题现在已经更新。 – teabot 2012-03-16 11:59:19