将域 类 从 GORM 独立模块导入 Grails
Importing domain classes from GORM-standalone module into Grails
我有 2 块拼图:
1) 一个名为 core-module
的非 Grails 项目,带有独立的 GORM:
dependencies {
compile 'org.grails:grails-datastore-gorm-mongodb:6.0.4.RELEASE'
compile 'org.grails:grails-validation:3.2.3'
}
和域 类 如:
import grails.gorm.annotation.Entity
@Entity
class Module {
String id
String tags
}
GORM-ing 由
初始化
Map config = new Yaml().load this.class.getResource( '/application.yml' ).text
new MongoDatastore( config, Module, UserAccount )
和域 类 就像在 Grails 应用程序中一样工作。
2) 一个 Grails 3.2.3
应用程序:
dependencies {
// default grails dependencies
compile project( ':core-module' )
compile 'org.grails.plugins:mongodb:6.0.4'
compile 'org.grails.plugins:spring-security-core:3.1.1'
// etc
}
GORM 初始化如下:
def config = config.grails.mongodb
log.info "using $config"
new MongoDatastore( config, Module, UserAccount )
并将其打印到日志文件中:
g.app.init.com.mozaiq.Application - using [host:localhost, port:27017, databaseName:theDB, username:theUN, pooled:true, mongoOptions:[connectionsPerHost:100, autoConnectRetry:true, connectTimeout:3000]]
问题是,属性 grailsApplication.domainClasses
是空的,即使 Module.collection
不是空的,Module.count()
return 0
尽管集合不为空。
同样在我的 mongo-client 中,我看到在应用程序启动时创建了一个新数据库 test
,其中包含一个空集合,由我的域 类 之一命名。如果我向其中插入一些文档,.count()
returns 0
和 CRUD 列表仍为空。
出于性能原因,Grails 默认仅扫描应用程序中的包。在 Application
class 中将 limitScanningToApplication()
覆盖为 return false
并通过在 Application
中覆盖 packageNames()
来定义您希望扫描的包] class.
Grails 然后会自动发现 Mongo GORM classes
我有 2 块拼图:
1) 一个名为 core-module
的非 Grails 项目,带有独立的 GORM:
dependencies {
compile 'org.grails:grails-datastore-gorm-mongodb:6.0.4.RELEASE'
compile 'org.grails:grails-validation:3.2.3'
}
和域 类 如:
import grails.gorm.annotation.Entity
@Entity
class Module {
String id
String tags
}
GORM-ing 由
初始化Map config = new Yaml().load this.class.getResource( '/application.yml' ).text
new MongoDatastore( config, Module, UserAccount )
和域 类 就像在 Grails 应用程序中一样工作。
2) 一个 Grails 3.2.3
应用程序:
dependencies {
// default grails dependencies
compile project( ':core-module' )
compile 'org.grails.plugins:mongodb:6.0.4'
compile 'org.grails.plugins:spring-security-core:3.1.1'
// etc
}
GORM 初始化如下:
def config = config.grails.mongodb
log.info "using $config"
new MongoDatastore( config, Module, UserAccount )
并将其打印到日志文件中:
g.app.init.com.mozaiq.Application - using [host:localhost, port:27017, databaseName:theDB, username:theUN, pooled:true, mongoOptions:[connectionsPerHost:100, autoConnectRetry:true, connectTimeout:3000]]
问题是,属性 grailsApplication.domainClasses
是空的,即使 Module.collection
不是空的,Module.count()
return 0
尽管集合不为空。
同样在我的 mongo-client 中,我看到在应用程序启动时创建了一个新数据库 test
,其中包含一个空集合,由我的域 类 之一命名。如果我向其中插入一些文档,.count()
returns 0
和 CRUD 列表仍为空。
出于性能原因,Grails 默认仅扫描应用程序中的包。在 Application
class 中将 limitScanningToApplication()
覆盖为 return false
并通过在 Application
中覆盖 packageNames()
来定义您希望扫描的包] class.
Grails 然后会自动发现 Mongo GORM classes