我有一个表示我们的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中的更多详细信息

09-10 02:09
查看更多