我有一個簡單的pojo,由於休眠狀態而被填充。我希望看到這個POJO的變量被映射到一個非常特定的SQL查詢,我想知道是否有可能在hibernate.xml文件中創建這樣的映射?ORM將變量映射到休眠狀態下的SQL查詢
非常感謝
我有一個簡單的pojo,由於休眠狀態而被填充。我希望看到這個POJO的變量被映射到一個非常特定的SQL查詢,我想知道是否有可能在hibernate.xml文件中創建這樣的映射?ORM將變量映射到休眠狀態下的SQL查詢
非常感謝
純JPA沒有簡單的方法來做到這一點。最好的方法是使用Hibernate's @Formula註釋,您可以在其中指定應該用於獲取字段數據的「SQL片段」。
您是否在尋找一些這樣的事
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中,它爲它賦值。
這似乎很好,是否有可能在xml映射文件中做到這一點,而不是作爲註釋? – Farid
是的,請參閱文檔中的5.1.4.2:http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html_single/#mapping-declaration-property – jpkrohling