域 class 映射:数据源不工作
Domain class mapping: datasource not working
我有以下域 class,我需要将其映射到特定数据源 (oracle),而我的所有其他域 classes 都映射到默认数据源 (mysql,效果很好)。
我的编辑器是 GGTS,您可以注意到 "datasource" 内部映射显示有下划线,就好像它不是有效的 属性 内部映射:
我还搭建了一个简单的控制器:
class AccountWfmController {
def index() {
render AccountWfm.list() as JSON
}
}
当尝试调用控制器方法 index
时,出现以下异常:
java.lang.IllegalStateException
Method on class [mypackage.AccountWfm] was used outside of
a Grails application. If running in the context of a test using the
mocking API or bootstrap Grails correctly.
最后,我的数据源(注意:在我的 /lib
文件夹中我有 ojdbc6.jar
):
dataSourceWFM {
pooled = true
dialect = org.hibernate.dialect.Oracle10gDialect
driverClassName = 'oracle.jdbc.OracleDriver'
username = "username"
password = "password"
url = "jdbc:oracle:thin:@192.168.1.1:1521:SID"
dbCreate = '' //none, I have readonly access
}
关于这里发生的事情的任何提示 (Grails 2.4.3)?
谢谢
查看 Multiple datasources 上的 Grails 文档。密切注意数据源的名称是如何到达的。您会注意到命名约定是:dataSource_extraNameHere
,您的 mapping
将使用 extraNameHere
.
,因为 Grails 是基于约定的
所以对于你的例子:
dataSource_wfm {
pooled = true
dialect = org.hibernate.dialect.Oracle10gDialect
driverClassName = 'oracle.jdbc.OracleDriver'
username = "username"
password = "password"
url = "jdbc:oracle:thin:@192.168.1.1:1521:SID"
dbCreate = '' //none, I have readonly access
}
在你的域中 class 你的映射应该是这样的:
static mapping = {
datasource = 'wfm'
}
希望这有助于阐明多个数据源如何在 Grails 中运行。该文档也是一个很好的信息来源。
我有以下域 class,我需要将其映射到特定数据源 (oracle),而我的所有其他域 classes 都映射到默认数据源 (mysql,效果很好)。
我的编辑器是 GGTS,您可以注意到 "datasource" 内部映射显示有下划线,就好像它不是有效的 属性 内部映射:
我还搭建了一个简单的控制器:
class AccountWfmController {
def index() {
render AccountWfm.list() as JSON
}
}
当尝试调用控制器方法 index
时,出现以下异常:
java.lang.IllegalStateException
Method on class [mypackage.AccountWfm] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly.
最后,我的数据源(注意:在我的 /lib
文件夹中我有 ojdbc6.jar
):
dataSourceWFM {
pooled = true
dialect = org.hibernate.dialect.Oracle10gDialect
driverClassName = 'oracle.jdbc.OracleDriver'
username = "username"
password = "password"
url = "jdbc:oracle:thin:@192.168.1.1:1521:SID"
dbCreate = '' //none, I have readonly access
}
关于这里发生的事情的任何提示 (Grails 2.4.3)?
谢谢
查看 Multiple datasources 上的 Grails 文档。密切注意数据源的名称是如何到达的。您会注意到命名约定是:dataSource_extraNameHere
,您的 mapping
将使用 extraNameHere
.
所以对于你的例子:
dataSource_wfm {
pooled = true
dialect = org.hibernate.dialect.Oracle10gDialect
driverClassName = 'oracle.jdbc.OracleDriver'
username = "username"
password = "password"
url = "jdbc:oracle:thin:@192.168.1.1:1521:SID"
dbCreate = '' //none, I have readonly access
}
在你的域中 class 你的映射应该是这样的:
static mapping = {
datasource = 'wfm'
}
希望这有助于阐明多个数据源如何在 Grails 中运行。该文档也是一个很好的信息来源。