2011-02-28 41 views
0

使用Hibernate我們試圖讓它爲抽象類創建一個額外的列 - 但是我們不能爲這個類添加一個新成員(大規模內存消耗)。我們需要Hibernate創建模式(開發階段,hibernate.hbm2ddl.auto=update)。沒有成員的列

比方說,我們有一個會員A,B一MyClass的實體類,C,我們希望Hibernate並創建一個列d。此列在內存中不需要,只能在保存/加載時間爲MyClass實例時通過HQL/SQL進行訪問。

可以這樣做嗎?

注:
1的Hibernate 3.6.0決賽+的Oracle 11g +純Java
2.我們使用註解,沒有XML文件

回答

1

的屬性添加到類,但要懶(使用@Basic(fetch = FetchType.LAZY)註釋)。

確保您的類在構建時進行插裝:需要它才能正常工作。更多詳細信息請參見this chapter of the documentation

+0

這會阻止提前獲取屬性,但仍需要聲明屬性MyClass.d(在OP示例中)。 MyClass實例的內存大小通過增加屬性「d」而增加。 – 2011-02-28 18:39:23

+0

您好JB Nizet,感謝您的回答,但是因爲binil說它仍然需要一個新的成員來'MyClass',佔用大量內存... – 2011-03-01 09:30:14

+0

您是否真的測量過這個簡單字段會導致的內存使用差異?這對我來說似乎是不成熟的優化。 – 2011-03-01 14:22:08