如何使用 grails-datastore-gorm 在 spring 引导中获取所有域 class?
how to get all domain class in spring boot with grails-datastore-gorm?
我想在 spring 启动应用程序中收集所有域 class(实现 GormEntity),就像在 grails 应用程序中 grailsApplication.getArtefact 一样?
怎么办?
您可以使用映射上下文执行此操作。
拥有数据存储后:
datastore.getMappingContext().getPersistentEntities()
每个持久实体都有一个getJavaClass()
方法
感谢 James Kleeh,他的回答解决了我的问题。
所以我 post 我的代码,希望它能帮助其他人在 spring-boot.
中使用 GORM
ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext;
configurableApplicationContext.getBeansOfType(Datastore).each{ String key, Datastore datastore ->
if(datastore.class==org.grails.orm.hibernate.HibernateDatastore){
println "hibernate datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.gorm.neo4j.Neo4jDatastore){
println "neo4j datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.mapping.cassandra.CassandraDatastore){
println "cassandra datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.mapping.mongo.MongoDatastore){
println "mongodb datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
}
我想在 spring 启动应用程序中收集所有域 class(实现 GormEntity),就像在 grails 应用程序中 grailsApplication.getArtefact 一样? 怎么办?
您可以使用映射上下文执行此操作。
拥有数据存储后:
datastore.getMappingContext().getPersistentEntities()
每个持久实体都有一个getJavaClass()
方法
感谢 James Kleeh,他的回答解决了我的问题。 所以我 post 我的代码,希望它能帮助其他人在 spring-boot.
中使用 GORM ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext;
configurableApplicationContext.getBeansOfType(Datastore).each{ String key, Datastore datastore ->
if(datastore.class==org.grails.orm.hibernate.HibernateDatastore){
println "hibernate datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.gorm.neo4j.Neo4jDatastore){
println "neo4j datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.mapping.cassandra.CassandraDatastore){
println "cassandra datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
if(datastore.class==org.grails.datastore.mapping.mongo.MongoDatastore){
println "mongodb datastore domains :"
datastore.getMappingContext().persistentEntities.each{entity->
println entity.javaClass.name
}
}
}