每个架构问题的 Spring Boot 多租户

巴赫罗姆·阿奇洛夫

我正在创建具有多租户支持的应用程序。
我在 GitHub 上的这个项目中做的那样:https : //github.com/singram/spring-boot-multitenant
当手动为其添加架构和表时,它工作正常。它会自动设置模式名称。但是我如何以编程方式而不是手动生成模式?
PS:我想在用户在系统中注册后为他生成模式。

阿吉特·索曼

要手动更新架构,您应该使用SchemaUpdatehibernate 类,您必须创建一个StandardServiceRegistry接口引用,引用将包含有关数据库连接和MetadataImplementor引用的信息

使用MetadataSources创建的参考MetadataImplementor我们需要告诉 hibernate 为这个MetadataSources提供方法的这些类创建表addAnnotatedClass()

这是示例

try {
    Map < String, String > map = new HashMap < String, String > ();
    map.put(Environment.HBM2DDL_AUTO, "update");
    map.put(Environment.DIALECT, "org.hibernate.dialect.MySQL5Dialect");
    map.put(Environment.DRIVER, "com.mysql.jdbc.Driver");
    map.put(Environment.URL, "jdbc:mysql://localhost:3306/" + databaseName);
    map.put(Environment.USER, "root");
    map.put(Environment.PASS, "root");
    map.put(Environment.SHOW_SQL, "false");
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
        .applySettings(map)
        .build();
    try {
        MetadataSources metaDataSource = new MetadataSources(ssr);
        Set < Class << ? extends Object >> classes = getClassInPackage("com.domain");
        for (Class << ? extends Object > c : classes) {
            metaDataSource.addAnnotatedClass(c);
        }
        final MetadataImplementor metadata = (MetadataImplementor) metaDataSource
                                                                    .buildMetadata();
        metadata.validate();
        SchemaUpdate su = new SchemaUpdate(ssr, metadata);
        su.setHaltOnError(true);
        su.setDelimiter(";");
        su.setFormat(true);
        su.execute(true, true);
    } finally {
        StandardServiceRegistryBuilder.destroy(ssr);
    }
} catch (GenericJDBCException e) {
    e.printStackTrace();
}

以上代码使用MYSQL数据库配置。为了在我使用的包中获取实体类reflections您可以将以下依赖项添加到pom.xml

<dependency>
    <groupId>org.reflections</groupId>
    <artifactId>reflections</artifactId>
    <version>0.9.11</version>
</dependency>

getClassInPackage()方法代码如下:

private Set < Class << ? extends Object >> getClassInPackage(String packagePath) {
            Reflections reflections = new Reflections(packagePath,
                new SubTypesScanner(false));
            Set < Class << ? extends Object >> allClasses =
                reflections.getSubTypesOf(Object.class);
            return allClasses;
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Boot + Spring Data多租户

来自分类Dev

如何实现Spring Boot Redis多租户?

来自分类Dev

如何实现多租户Spring Boot应用程序(每个用户都有自己的数据库)

来自分类Dev

Spring Logback多租户实现,每个租户都具有自定义配置

来自分类Dev

具有动态数据源的Spring Boot JPA多租户

来自分类Dev

具有Spring Boot和Hibernate的多租户和中央数据库

来自分类Dev

Spring Boot 多租户代码,具有独立的客户端特定隔离

来自分类Dev

Hibernate Search 在多租户 Spring Boot 应用程序中初始化索引

来自分类Dev

Azure DocumentDB多租户架构

来自分类Dev

使用Hibernate和Spring Data JPA进行多租户,架构方法如何工作

来自分类Dev

H2 的 Hibernate 多租户问题:错误的架构

来自分类Dev

Spring boot - 在多租户应用程序中的单个请求中访问多个数据源

来自分类Dev

在多租户架构中将每个租户的异常记录在单独的文件中

来自分类Dev

基于更改日志的租户架构更新中的Liqubase多租户问题

来自分类Dev

我在多对多(Spring Boot)中有更新对象的问题

来自分类Dev

Spring + Tomcat基于请求URL的多租户

来自分类Dev

带有多租户的Spring Batch

来自分类Dev

Spring Data MongoDB基于集合的多租户

来自分类Dev

带有多租户的Spring Batch

来自分类Dev

Spring + Tomcat基于请求URL的多租户

来自分类Dev

回送4中基于架构的多租户

来自分类Dev

Spring Boot层架构

来自分类Dev

注入服务的休眠多租户实现问题

来自分类Dev

注入服务的休眠多租户实现问题

来自分类Dev

Microsoft Graph 中的多租户问题

来自分类Dev

使用多租户架构更新所有架构

来自分类Dev

使用多租户架构更新所有架构

来自分类Dev

Spring Boot构建问题

来自分类Dev

Spring Boot ConfigurationProperties 问题

Related 相关文章

  1. 1

    Spring Boot + Spring Data多租户

  2. 2

    如何实现Spring Boot Redis多租户?

  3. 3

    如何实现多租户Spring Boot应用程序(每个用户都有自己的数据库)

  4. 4

    Spring Logback多租户实现,每个租户都具有自定义配置

  5. 5

    具有动态数据源的Spring Boot JPA多租户

  6. 6

    具有Spring Boot和Hibernate的多租户和中央数据库

  7. 7

    Spring Boot 多租户代码,具有独立的客户端特定隔离

  8. 8

    Hibernate Search 在多租户 Spring Boot 应用程序中初始化索引

  9. 9

    Azure DocumentDB多租户架构

  10. 10

    使用Hibernate和Spring Data JPA进行多租户,架构方法如何工作

  11. 11

    H2 的 Hibernate 多租户问题:错误的架构

  12. 12

    Spring boot - 在多租户应用程序中的单个请求中访问多个数据源

  13. 13

    在多租户架构中将每个租户的异常记录在单独的文件中

  14. 14

    基于更改日志的租户架构更新中的Liqubase多租户问题

  15. 15

    我在多对多(Spring Boot)中有更新对象的问题

  16. 16

    Spring + Tomcat基于请求URL的多租户

  17. 17

    带有多租户的Spring Batch

  18. 18

    Spring Data MongoDB基于集合的多租户

  19. 19

    带有多租户的Spring Batch

  20. 20

    Spring + Tomcat基于请求URL的多租户

  21. 21

    回送4中基于架构的多租户

  22. 22

    Spring Boot层架构

  23. 23

    注入服务的休眠多租户实现问题

  24. 24

    注入服务的休眠多租户实现问题

  25. 25

    Microsoft Graph 中的多租户问题

  26. 26

    使用多租户架构更新所有架构

  27. 27

    使用多租户架构更新所有架构

  28. 28

    Spring Boot构建问题

  29. 29

    Spring Boot ConfigurationProperties 问题

热门标签

归档