請注意,我使用Grails 2.0.0里程碑2在生產或測試中運行時,Grails不使用我的數據源?
,我發現了Hibernate的錯誤createQuery is not valid without active transaction
,當我嘗試WAR /部署我的Grails應用程序或運行使用prod run-app
/test run-app
應用。 如果我只使用普通的run-app
,一切都按預期工作。
我在想,prod run-app
和war
之間可能會有什麼不同,這會導致我的數據源無法正確連接?
這裏是我的DataSource.groovy
文件:
dataSource {
dbCreate = "none"
url = "jdbc:mysql://something/mydb"
pooled = true
dialect = org.hibernate.dialect.MySQLDialect
username = "xxxxxx"
password = "xxxxxxxxx"
driverClassName = "com.mysql.jdbc.Driver"
}
hibernate {
config.location = "classpath:some/hibernate/file.cfg.xml"
}
而且,我有一個像這樣一個服務:
package org.dostuff
import org.dostuff.DaoFactory;
import org.springframework.transaction.annotation.Transactional;
class StuffService {
static transactional = true;
@Transactional(readOnly = true)
def getSomething() {
def daoFactory = new DaoFactory();
def stuff = daoFactory.getSomeDao().getSomething();
return stuff;
}
}
注意,我注入休眠SessionFactory
靜態到我DaoFactory
在BootStrap.groovy
文件。
我還能做什麼錯?謝謝!
謝謝,我也試過,還沒有運氣。它看起來像是在生產/測試/戰爭中忽略我的dataSource定義:( – Polaris878
你可以嘗試用腳手架控制器創建一個簡單的Domain類,看看它是否有效?這樣你可以找出問題是否存在datasource.groovy還是它在服務本身 – Sap