如何使用 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
            }
        }
    }