2011-02-08 36 views
4

我有一種情況,表中的列可能存在也可能不存在。長話短說,我們有一個可選功能,如果實施,將把一列固定到一張桌子上。如果客戶選擇不具備該功能,他們將不具有該列。有沒有辦法將Hibernate映射到可能存在或不存在的列?

我想在它的DAO中定義一個屬性,希望Hibernate不會炸掉如果列不存在。也許通過將值設置爲null。但是,Hibernate正在拋出一個「無效標識符」異常。

有誰知道你是否可以做到這一點?有一個列映射,如果列有Hibernate填充它,但如果它不存在,一切都很好,它只是null

非常感謝。

+0

爲什麼不總是有列,並在另一列中有一個值表示該功能的存在? – Damo 2011-02-08 23:25:31

+0

我絕對會吠叫那棵樹。這看起來有點奇怪,但那些是我們處理過的牌。我希望有一些休眠「靈活性」作爲回退。 – 2011-02-09 01:55:47

回答

2

最明顯的選擇是創建不同的映射,並根據環境在啓動期間選擇其中一個。

根據配置Hibernate,您可以使用一些選項來避免不同映射之間的複製方式:

  • 如果你使用.hbm.xml,你可以應用一些預處理它
  • 如果你使用註釋
  • ,你可以使用orm.xml中的配置文件覆蓋它們
相關問題