使用命名查詢與我們擁有的有什麼優勢?縱觀性能,可用性,可維護性等等等等....在Hibernate Annotation下使用命名查詢有什麼好處
在我們的應用中,我們已經定義了查詢,例如:
private static final String SELECT_CODE_FOR_STORE = "select DISTINCT code from Code code "
+ "join code.codeDescriptions codeDesc "
+ "join codeDesc.stores store where store.id =:"
+ DataAccessConstants.PARAM_STORE_ID;
(這些都放入DAO對象,並有很多人。)
而且我們通過使用調用上面:
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("storeId", codeDescriptionSearchCriteria.getStoreId());
List<Code> list = getJpaTemplate().findByNamedParams(
SELECT_CODE_FOR_STORE, paramMap);
return list;
這無非是那麼:
public List findByNamedParams(final String arg0,
final Map<String,
? extends Object> arg1) throws DataAccessException
{
return org.springframework.orm.jpa.JpaTemplate.findByNamedParams(arg0, arg1);
}
與使用
@NamedQuery(name="SELECT_CODE_FOR_STORE", query="select ......")
一個我們的DAO對象的頂部。我看到了this posting這似乎是組織所有這些查詢的好方法。或者,如果我們有這麼多類型的查詢,現在可以重新評估我們的數據庫和對象結構。
國際海事組織更好的答案在這裏:http://stackoverflow.com/a/7770977/891479 – 2014-06-11 15:06:37