2012-10-15 47 views
0

我有我的分貝例如廠景一個觀點,我需要使用此視圖高達作出報告view1report一些計算字段,說AplusB休眠,因爲計算領域的繼承(Hibernate的2.8.1)

(當然我想處理它們作爲由Hibernate對象)

view1 
    int a 
    int b 
---  
view1report extends view1 
    int AplusB 
.... 
public int setAplusB() { ... my own logic ...} 

問題

  • 答:可以通過Hibernate解決嗎?

如果是

  • B.我怎樣才能建立我hmb.xml要表達的子類?
  • C.最後但並非最不重要的如何可以在計算字段的setter中使用我自己的邏輯?

回答

0

創建一個視圖和DB執行(爲什麼我想將它們分開的額外計算領域的原因)。現在創建一個POJO來映射視圖。如果您正在使用HBM映射實體,請創建hbm文件並在映射Table時將其映射。如果您使用的標註,創建註釋的類映射各自領域

而在你的映射類,再創建一個文件(如果註解類,添加@Transient註釋

public int aplusb; 
在其getter方法

,收益總和a和b。

return a+b; 

這將起作用。

+0

對不起,我忘記告訴我們爲視圖編寫hbm.xml(1視圖 - 1實體),但我不知道如何描述上面類似的情況在hbm.xml – cscsaba

+0

與我們正在做的表相同,考慮查看錶格並映射它。它將和表格工作一樣。注意:確保在導出模式時,它將創建表 –

+0

您能否引用一個hbm.xml示例,它可以實現我的問題的解決方案?因爲我不能看到如何設置以下內容 - Inhertance,子類(view1report)不存在於數據庫中(因爲它只保存計算值) - 並且當我想要定義我的setter或getter時,hbm也會生成getters,setters與具體的邏輯。對不起,如果我第一次不夠清楚。 – cscsaba

0

所以,我想通了,我不需要配置的hbm.xml到根erate子類(剛剛計算的字段)。 我只需要通過編程方式自己繼承hibernate生成的類。

這是一個很好的教訓。

這些誰沒有按照這個討論我的想法是,我會產生由調用:hbm2java的view1report類以及(見例),其中有隻計算基於超廠景領域。