0
我使用JPA與Hibernate作爲實施默認情況下是否急於提取JPA命名查詢?
我有下面的應用程序代碼
CustomerData customerData = (Customer) getCustomerDataDAO().getObjectByNamedQuery("Customerdata.findByCustomername", queryParameters);
爲queryObject.getResultList()被執行,下面的方法
@Override
@SuppressWarnings("unchecked")
public <T> getByNamedQuery(final String queryName) {
Query queryObject = entityManager.createNamedQuery(queryName);
return queryObject.getResultList().get(0);
}
12:18查詢火災打電話。當我訪問customerData的某些屬性時,我期待查詢會被觸發。 默認情況下是否急於提取JPA命名查詢?
當您調用getResultList()時,將執行所有的查詢命名或不命名。就像javadoc所說:http://docs.oracle.com/javaee/6/api/javax/persistence/Query.html#getResultList%28%29:*執行SELECT查詢並將查詢結果作爲無類型列表返回。* –
順便說一句,你怎麼能訪問列表的第一個元素,而沒有列表中的第一個地方? JPA如何在不執行查詢的情況下返回填充列表? –
哦,我錯過了。我認爲查詢也會在你訪問域對象屬性時執行,就像get等會話方法一樣。請將它作爲答案發布,以便我可以接受它 – emilly