У меня есть Hibernate Entity, представляющая наши Partner
s. Мы хотим связать этого партнера с активным 'Type
' (другим объектом) через таблицу соединений (поскольку Type
может использоваться во многих сценариях). Предостережение заключается в том, что объединение основано на дате (управление версиями).
То, что я хочу, это что-то вроде:
Partner.getActiveType()
представляет
select * from partner_to_type_map
where partner_id = xxx
and now() between effective_from and effective_to;
Конечно, я мог бы представить таблицу соединений как сущность, и у них есть эта сущность, на которую можно ссылаться в моем Set<PartToTypeMap>
, но это сделало бы ее использование ужасно неуклюжим Я должен был бы собрать эти данные и отсортировать их, чтобы найти правильный. Я могу сделать это с помощью дао и некоторого 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;