gpt4 book ai didi

java - Grails:使用数据源插件,无法跨不同数据源连接域类

转载 作者:行者123 更新时间:2023-11-29 03:53:57 25 4
gpt4 key购买 nike

我正在使用此处描述的 Grails 数据源插件:http://burtbeckwith.com/blog/?p=70

我正在连接同一台服务器上的 2 个 MySQL 数据库模式:my_schema_1 和 my_schema_2。我需要的大部分数据来自 my_schema_1,但其中一个表包含引用 my_schema_2 中的一个表的列。

这是我的 Datasources.groovy 文件中的数据源定义(已简化):

datasources = {
datasource(name: 'my_schema_1') {
domainClasses([Question, Answer])
driverClassName('com.mysql.jdbc.Driver')
url('jdbc:mysql://test.myserver.com/my_schema_1')
username('***')
password('***')
}

datasource(name: 'my_schema_2') {
domainClasses([Genre])
driverClassName('com.mysql.jdbc.Driver')
url('jdbc:mysql://test.myserver.com/my_schema_2')
username('***')
password('***')
}
}

这是我的 3 个类定义:

class Question {
String text
Answer answer
Genre genre
}

class Answer {
String text
}

class Genre {
String name
}

每当我尝试对 Question 类执行条件查询时,我都会收到以下映射异常:

An association from the table question refers to an unmapped class: Genre

如果我注释掉 Question 类中的 genre 属性,一切正常。如果我对 Genre 类本身执行条件查询,一切正常。跨模式加入 2 个类似乎存在问题。 (当然,也很有可能我错过了某事或做错某事。)

是我做错了什么还是数据源插件的限制?而且,如果这是插件的限制,我可以使用哪些替代方案来实现我的需要?

非常感谢任何帮助/建议。

谢谢,

北京

最佳答案

数据源插件只支持数据库之间的弱引用。这意味着您需要自己管理关联的完整性。实现此目的的最佳方法是实现一个能够查询两个域实例并为您提供复合域实例的服务。

您引用的链接在条目底部注明了这一点。另外,这里是 same question在 grails 邮件列表中提出(并回答)。

关于java - Grails:使用数据源插件,无法跨不同数据源连接域类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7391016/

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