我有一個使用Spring和Hibernate的應用程序。在我的數據庫中,有一些視圖需要在某些實體中加載。所以我想執行原生查詢並加載從視圖中檢索類的任意不等階數據:從JPA /休眠視圖中加載實體
//In my DAO class (@Repository)
public List<MyClass> findMyEntities(){
Query query = em.createNativeQuery("SELECT * FROM V_myView", MyClass.class);
return query.getResultList();
}
和MyClass的具有相同的字段視圖的列名。
的問題是,Hibernate無法識別MyClass的,因爲它不是(它不是爲@Entity註解)
org.hibernate.MappingException: Unknown entity
如果我把MyClass的作爲一個實體的系統將把嘗試創建/更新的實體該實體的表,因爲我已經配置:
<property name="hibernate.hbm2ddl.auto" value="update"/>
所以我接觸到這些問題:
- 是否可以禁用「hibernate.hbm2ddl.auto」僅適用於單個實體?
- 有沒有辦法將數據從視圖加載到非實體類中?
- 如果沒有,在我的情況下將數據從視圖加載到休眠類中的最佳方式是什麼?
感謝
FWIW,其他JPA實現支持不是實體的結果類,JPA 2.0規範對唯一的實體類型沒有提及。 – DataNucleus 2011-12-22 11:49:36