gpt4 book ai didi

grails - Grails多个数据源,在尝试将新实例保存到所选数据源中时不起作用

转载 作者:行者123 更新时间:2023-12-02 14:49:50 25 4
gpt4 key购买 nike

使用多个数据源时,我的配置很简单,但是我正在尝试将新实例保存到特定的数据源中

我的数据源:

dataSources:
dataSource:
pooled: true
jmxExport: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
driverClassName: com.mysql.jdbc.Driver
username: root
password: Choice2016
dominio1:
pooled: true
jmxExport: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
driverClassName: com.mysql.jdbc.Driver
username: root
password: Choice2016
dominio2:
pooled: true
jmxExport: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
driverClassName: com.mysql.jdbc.Driver
username: root
password: Choice2016

我的域名
class Nxtt_reports {

Boolean favorite

static hasMany = [nxtt_report_histories: Nxtt_report_history, nxtt_user_reports: Nxtt_user_reports, nxtt_report_snapshots: Nxtt_report_snapshot]

static constraints = {

}

static mapping = {
datasource 'ALL'
}

}

当我这样做时
    def nxtt = Nxtt_reports.class
println(nxtt.dominio1.list())

我可以列出所需域中的数据,但是如果这样做
    def nxtt = Nxtt_reports.class.newInstance()
nxtt.favorite = 0
nxtt.dominio2.save()

我得到这个

没有这样的属性:类dominio2:nexttreport.server.Nxtt_reports。 Stacktrace如下:
groovy.lang.MissingPropertyException:否这样的属性:类:nexttreport.server.Nxtt_reports的dominio2

使用:

| Grails版本:3.1.1
| Groovy版本:2.4.5
| JVM版本:1.8.0_65

编辑
environments:
development:
dataSources:
dataSource:
dbCreate: update
url: jdbc:mysql://192.168.1.24:3306/nexttreport?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
dominio1:
dbCreate: update
url: jdbc:mysql://192.168.1.24:3306/dominio1?useUnicode=yes&characterEncoding=UTF-8&useSSL=false
dominio2:
dbCreate: update
url: jdbc:mysql://192.168.1.24:3306/dominio2?useUnicode=yes&characterEncoding=UTF-8&useSSL=false

最佳答案

我在阅读和理解您的代码时遇到了一些麻烦,因为您没有遵循常规的Java / Groovy约定。

首先,我建议您使用常规的CamelCase,并且在类名中不要使用下划线,因此请使用NxxtReports

其次,为什么不使用NxxtReports.domino1.list()list()NxxtReports的静态方法,因此应这样称呼它。

第三,我认为最重要的是,使用实例化对象的常规Java / Groovy方法,所以

def nxxt = new NxxtReport()
nxxt.favorite = 0
nxxt.domino2.save()

我怀疑通过调用 newInstance()变量上的 class无法正确添加DomainClass实例上的其他Grails方法。

我手边没有一台真正的计算机(现在在移动设备上),所以我无法检查我的代码,但是我认为使用常规的Java / Groovy约定会很有帮助。

关于grails - Grails多个数据源,在尝试将新实例保存到所选数据源中时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com