如何在同一个 spring 引导服务中使用来自两个数据源的 jooq 生成 pojo
How to generate pojos using jooq from two data sources in the same spring boot service
我想使用 jooq 从 two 数据源生成 pojo(两个单独的 MySQL 数据库托管在单独的 AWS RDS 上)在 same spring 引导服务中。我该怎么做?
我怀疑这里是否可以使用以下内容:
jooq {
DBONE(sourceSets.main) {
jdbc {
driver = 'com.mysql.cj.jdbc.Driver'
url = ...
user = ...
password = ...
}
generator {
database {
includes = '<DB_ONE>.*'
}
generate {
relations = true
records = true
pojos = true...
}
target {
packageName = 'com.abcd.jooq'
directory = 'build/src/generated/java'
}
}
}
DBTWO(sourceSets.main) {
jdbc {
driver = 'com.mysql.cj.jdbc.Driver'
url = ...
user = ...
password = ...
}
generator {
database {
includes = '<DB_TWO>.*'
}
generate {
relations = true
records = true
pojos = true...
}
target {
packageName = 'com.abcd.jooq'
directory = 'build/src/generated/java'
}
}
}
}
我注意到在构建 spring 启动应用程序后只能找到一个 config.xml。并且只为一个数据源生成 pojos。任何人都可以建议任何人做同样的事情吗?
您不能让两代运行将代码生成到同一个包中。每一代配置都拥有自己的包,并将删除所有不属于那里的东西。
您有两个选择:
- 使用不同的目标包
- 使用一些开发代码生成数据源,使您可以从同一台服务器访问两个数据库,例如通过使用 testcontainers (example here), or even the
DDLDatabase
我想使用 jooq 从 two 数据源生成 pojo(两个单独的 MySQL 数据库托管在单独的 AWS RDS 上)在 same spring 引导服务中。我该怎么做?
我怀疑这里是否可以使用以下内容:
jooq {
DBONE(sourceSets.main) {
jdbc {
driver = 'com.mysql.cj.jdbc.Driver'
url = ...
user = ...
password = ...
}
generator {
database {
includes = '<DB_ONE>.*'
}
generate {
relations = true
records = true
pojos = true...
}
target {
packageName = 'com.abcd.jooq'
directory = 'build/src/generated/java'
}
}
}
DBTWO(sourceSets.main) {
jdbc {
driver = 'com.mysql.cj.jdbc.Driver'
url = ...
user = ...
password = ...
}
generator {
database {
includes = '<DB_TWO>.*'
}
generate {
relations = true
records = true
pojos = true...
}
target {
packageName = 'com.abcd.jooq'
directory = 'build/src/generated/java'
}
}
}
}
我注意到在构建 spring 启动应用程序后只能找到一个 config.xml。并且只为一个数据源生成 pojos。任何人都可以建议任何人做同样的事情吗?
您不能让两代运行将代码生成到同一个包中。每一代配置都拥有自己的包,并将删除所有不属于那里的东西。
您有两个选择:
- 使用不同的目标包
- 使用一些开发代码生成数据源,使您可以从同一台服务器访问两个数据库,例如通过使用 testcontainers (example here), or even the
DDLDatabase