2012-06-25 67 views
1

我有一個簡單的pojo,由於休眠狀態而被填充。我希望看到這個POJO的變量被映射到一個非常特定的SQL查詢,我想知道是否有可能在hibernate.xml文件中創建這樣的映射?ORM將變量映射到休眠狀態下的SQL查詢

非常感謝

回答

1

純JPA沒有簡單的方法來做到這一點。最好的方法是使用Hibernate's @Formula註釋,您可以在其中指定應該用於獲取字段數據的「SQL片段」。

+0

這似乎很好,是否有可能在xml映射文件中做到這一點,而不是作爲註釋? – Farid

+0

是的,請參閱文檔中的5.1.4.2:http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html_single/#mapping-declaration-property – jpkrohling

0

您是否在尋找一些這樣的事

String sql = "SELECT a.id As id, CONCAT(a.firstName,' ',a.lastName) AS advisorName from tableAdvis"; 

List<CollectionReport> collectionList = (List<CollectionReport>) getSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(CollectionReport.class)).list(); 

這裏是我的CollectionReport POJO看起來像

public class CollectionReport { 

    private BigInteger id; 
    private String advisorCode; 
    private String advisorName;  
    //Getter & Setter 

} 

使用ResultTransformer會得到查詢結果,並根據屬性名在POJO中,它爲它賦值。