2010年2月9日

GSP 中使用 Hibernate Criteria Builder

使用 Grails 的經驗中, 處理 GORM 物件的查詢通常會使用 .withCriteria {} 來取得資料, 即便是用在 GSP 中。

可是我的經驗中, 在開發 GSP 程式使用 criteria builder 所得的結果是正常的; 但以 grails-war 來產生 WAR file, 並發佈至 WebLogic App server 後, 卻無法執行。

經研究後的變更方法是:
def yourList =
  new grails.orm.HibernateCriteriaBuilder(
        Yours.class, applicationContext.sessionFactory).list {
    ...
  }
其中第二個參數的 session factory, 它由 applicationContext 這個 bean object 所有, 所以可以直接取得。

沒有留言: