2014-06-18 55 views
0

我有一個使用hbm.xml文件映射到Hibernate的對象。表格的BEAN /對象包含一個額外的字段以及適當的getter/setter。我想要做的事,如:如何將另一列映射到Hibernate bean?

SELECT T.*, 'XYZ' as otherData FROM table T 

,並具有映射到bean中的所有數據,包括假冒/附加列的值 - 「otherData。」

這應該很簡單,也許我錯過了一些簡單的事情,但我不能得到它的工作。我已經使用

createSQLquery() with addEntity(), addScalar(), setResultTransformer() 

createCriteria() with a projectionList() and setResultTransformer() 

和其他任何我能想到的和沒有給出預期的效果嘗試。我不想要一個通用的對象列表,我必須通過解析來構建我的對象,而且我不希望在構建此查詢時指定表的每一列。

這有什麼辦法可以做到嗎?

回答

0

您可能會考慮使用該屬性的公式。你可以用任何SQL查詢數據填充它。例如,考慮一個訂單 - 要滿足訂單的屬性與訂單行的編號順序線性關係,如:

public class Order { 
    private String orderNumber; 
    private int lineCount; 

... }

則映射將是:

<class name="Order" ....> 
    ... 
    <property name="lineCount" 
    formula="(select COUNT(*) from ORDER_LINE l where l.ORDER_NUMBER = ORDER_NUMBER)"/> 
    ... 
</class> 
+0

有趣的,我可以試試這個。雖然我有點不情願在映射文件中使用SQL。我希望能夠'擴展'bean/mapping來包含其他數據。感謝你的回答。 – user3708842

相關問題