按版本日期表示hibernate实体中联接表的单个元素的java
我有一个Hibernate实体表示我们的Partner
。我们希望通过联接表将该伙伴与活动的Type
(另一个实体)相关联(因为Type
可以在许多场景中使用)。需要注意的是,联接是基于日期的(版本控制)
我想要的是:
Partner.getActiveType()
代表
select * from partner_to_type_map
where partner_id = xxx
and now() between effective_from and effective_to;
当然,我可以将连接表表示为一个实体,它们在我的Set<PartToTypeMap>
中具有可引用的实体,但这会使使用它变得非常笨拙。我必须整理这些数据,让他们通过排序找到正确的数据。我可以用一个dao和一些HQL来实现这一点,但我希望正确的对象就在那里
联接表是:
我查看了@Version
注释,但它似乎不是我想要的(尽管我可能错了)
如果需要,我可以发布代码,但实际上,Partner
是一个简单的实体
CREATE TABLE `partner_to_type_reg_map` (
`partner_id` int(11) unsigned NOT NULL,
`account_key_type_id` INT(10) UNSIGNED NOT NULL,
`effective_from` Timestamp NOT NULL,
`effective_to` TIMESTAMP NULL,
PRIMARY KEY (`partner_id`),
UNIQUE KEY `account_key_type_id` (`account_key_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 1 楼答案
看看@Where&@WhereJoinTable association-这将允许您向关联映射添加条件。更多详情请参阅docs