2013-06-18 120 views
-2

是否可以直接從查詢創建實體?從查詢中創建一個實體?

不知道它是如何。但我被告知我可以從查詢(Not VIEW)創建一個實體。

我的需求是連接多個表並只拉一些列並將其用作代碼中的實體。

回答

2

我不確定你的意思是實體(SSCCE會有幫助,國際海事組織)。

但是,您要查找的可能是JPQL Constructor Expressions

SELECT子句可以在SELECT列表中使用構造函數來返回一個或多個Java實例。指定的類不需要是實體或映射到數據庫。構造函數名稱必須完全限定。 如果在SELECT NEW子句中指定了實體類名稱,則生成的實體實例處於新狀態。

下面是一個例子 -

SELECT NEW com.company.PublisherInfo(pub.id, pub.revenue, mag.price) 
    FROM Publisher pub JOIN pub.magazines mag WHERE mag.price > 5.00 

您可以用上面的調用構造函數並傳遞給它選擇的值來實例化對象。

以下是example using HQL的鏈接。