我有一个表示我们的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;
最佳答案
查看@Where和@WhereJoinTable关联-这将使您可以向关联映射添加条件。 docs中的更多详细信息