2011-12-14 210 views
2

我有一個Hibernate實體,代表我們的Partner s。我們希望通過連接表將該夥伴關聯到活動的「Type」(另一個實體)(由於Type可以在許多情況下使用)。需要注意的是,連接是基於日期的(版本控制)。根據版本日期表示hibernate實體中連接表的單個元素

我想是這樣的:

Partner.getActiveType() 

代表

select * from partner_to_type_map 
where partner_id = xxx 
and now() between effective_from and effective_to; 

我當然可以代表加入表作爲一個實體,他們有實體referencable在我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; 

回答

0

看@Where & @WhereJoinTable協會 - 這將讓你一個條件添加到關聯映射。更多詳細信息在docs

相關問題