HIbernate/JPA 是否可以创建一个 SQL 视图?
HIbernate / JPA is it possible to create an SQL View?
我看过很多关于如何将 JPA 实体映射到 SQL 视图的问题和教程。但是其中 none 解释了如何使用 JPA 创建 SQL 视图。我想知道这是否可能。在最坏的情况下,我必须手动创建所有视图,但我不知道再使用 JPA 的原因了。
无法直接使用 JPA(包括 Hibernate)从映射元数据自动创建视图。
但是,您可以结合使用 persistence.xml 属性 "javax.persistence.schema-generation.create-source" 和 "javax.persistence.schema-generation.create-script-source" 来允许持久性提供程序执行给定的脚本以删除创建的映射 "view entity" 的 table 并创建其对应的视图。必须按照 Does JPA support mapping to sql views?. This method requires the database administrator to create the view manually, as you wrote. Please check chapter 9.4 of JSR 388 (https://jcp.org/en/jsr/detail?id=338 中所述映射视图实体以获取更多信息。
当然,如果缺少此功能使 JPA/Hibernate 对您的用例不感兴趣,那是品味或意见的问题。
我看过很多关于如何将 JPA 实体映射到 SQL 视图的问题和教程。但是其中 none 解释了如何使用 JPA 创建 SQL 视图。我想知道这是否可能。在最坏的情况下,我必须手动创建所有视图,但我不知道再使用 JPA 的原因了。
无法直接使用 JPA(包括 Hibernate)从映射元数据自动创建视图。
但是,您可以结合使用 persistence.xml 属性 "javax.persistence.schema-generation.create-source" 和 "javax.persistence.schema-generation.create-script-source" 来允许持久性提供程序执行给定的脚本以删除创建的映射 "view entity" 的 table 并创建其对应的视图。必须按照 Does JPA support mapping to sql views?. This method requires the database administrator to create the view manually, as you wrote. Please check chapter 9.4 of JSR 388 (https://jcp.org/en/jsr/detail?id=338 中所述映射视图实体以获取更多信息。
当然,如果缺少此功能使 JPA/Hibernate 对您的用例不感兴趣,那是品味或意见的问题。