有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

按版本日期表示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) 个答案

  1. # 1 楼答案

    看看@Where&@WhereJoinTable association-这将允许您向关联映射添加条件。更多详情请参阅docs