How to get the All table metadata in spring boot - JPA - hibernate?

后端 未结 3 472
逝去的感伤
逝去的感伤 2021-01-14 04:09

I need to get META information of All the tables present in my schema dynamically , Meta infos are such as table , entity ,column name etc.

I have f

3条回答
  •  独厮守ぢ
    2021-01-14 05:04

    In org.springframework.orm.hibernate5.LocalSessionFactoryBean, there is a variable argument setter method for hibernateIntegrators which will accept one or more instances of org.hibernate.integrator.spi.Integrator

    So in org.springframework.orm.hibernate5.LocalSessionFactoryBean configuration add the below property

    
    

    and make the Integrator as managed bean

        package com.test.ttv;
        import org.hibernate.boot.Metadata;
        import org.hibernate.boot.model.relational.Database;
        import org.hibernate.engine.spi.SessionFactoryImplementor;
        import org.hibernate.service.spi.SessionFactoryServiceRegistry;
        import org.springframework.stereotype.Component;
    
        @Component  
        public class MetadataExtractorIntegrator implements org.hibernate.integrator.spi.Integrator {
    
            private Database database;
    
            private Metadata metadata;
    
            public Database getDatabase() {
                return database;
            }
    
            public Metadata getMetadata() {
                return metadata;
            }
    
            @Override
            public void integrate(
                    Metadata metadata,
                    SessionFactoryImplementor sessionFactory,
                    SessionFactoryServiceRegistry serviceRegistry) {
    
                this.database = metadata.getDatabase();
                this.metadata = metadata;
    
            }
    
            @Override
            public void disintegrate(
                SessionFactoryImplementor sessionFactory,
                SessionFactoryServiceRegistry serviceRegistry) {
    
            }
        }
    

提交回复
热议问题