【问题标题】:How to create a hibernate view of other databases?如何创建其他数据库的休眠视图?
【发布时间】:2019-10-24 22:55:18
【问题描述】:

早上好,我有问题!

我的项目是多租户的,我使用 SPRING JPA + SPRINGBOOT + POSTGRES。 它包含一个数据库管理器,每个租户都有自己的数据库。

当我在租户的数据库中查看数据管理器数据库时,问题就开始了。

例如,在数据库管理器中,我有信息可以让租户的用户登录。但是在每个租户的数据库中应该能够拥有他们用户的信息。租户数据库中的用户可以拥有更多数据!

最好的方法是什么?我应该创建视图吗?

另外,这个应用程序很受欢迎,所以这个想法是数据库的使用是相当动态的。

提前感谢您!任何贡献都会有所帮助。

【问题讨论】:

    标签: postgresql hibernate spring-boot view


    【解决方案1】:

    是的,最好的解决方案是创建视图,您可以在其中获取所需的所有数据,并且数据已经为租户过滤。

    编辑:

    您必须在数据库上创建视图,然后将其映射到只读实体或仅将其与 SQL 一起使用。

    要拥有只读实体,您可以使用 Hibernates @Immutable 注释。

    请在 Hibernate 文档中找到更多信息:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#entity-immutability

    【讨论】:

    • 谢谢 Simon,你知道在 hibernate 中创建视图的最佳方法是什么吗?考虑到我的情况。
    • 谢谢Simon,你知道用hibernate创建表时是否有办法自动创建这些视图?
    • 没有。但是你可以使用 Spring Boot schema.sql 来创建它
    • 抱歉这么多问题。但我对这项技术的使用还很陌生。有没有办法将数据发送到 schema.sql?比如我想做一个“wheretenant_id=?”,是否可以发送idTenant的数据?
    • 没有。该文件是静态的。否则你需要一个在启动时监听 ApplicationReadyEvent 的类
    猜你喜欢
    • 2019-09-18
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2013-04-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多