【问题标题】:HIbernate / JPA is it possible to create an SQL View?HIbernate / JPA 是否可以创建 SQL 视图?
【发布时间】:2020-07-13 19:35:36
【问题描述】:

我看过很多关于如何将 JPA 实体映射到 SQL 视图的问题和教程。但是他们都没有解释如何使用 JPA 创建 SQL 视图。我想知道这是否可能。在最坏的情况下,我必须手动创建所有视图,但是我不知道有什么理由再使用 JPA。

【问题讨论】:

  • 这不是duplicate吗?
  • @PauloAraújo 不,请比较问题。我明确要求使用休眠创建视图。您链接的问题只是关于如何将休眠与sql视图连接以请求数据。

标签: sql hibernate jpa sql-view


【解决方案1】:

无法从映射元数据直接使用 JPA(包括 Hibernate)自动创建视图。

但是,您可以使用 persistence.xml 属性“javax.persistence.schema-generation.create-source”结合“javax.persistence.schema-generation.create-script-source”来允许持久性提供者执行给定脚本以删除“视图实体”的已创建映射表并创建其对应视图。视图实体必须按照Does JPA support mapping to sql views? 中的描述进行映射。如您所写,此方法需要数据库管理员手动创建视图。请查看 JSR 388 (https://jcp.org/en/jsr/detail?id=338) 的第 9.4 章了解更多信息。

当然,如果缺少此功能使 JPA/Hibernate 对您的用例不感兴趣,这只是个人喜好或意见的问题。

【讨论】:

  • 感谢您的回答。 Hibernate / JPA 对于我的用例仍然很有趣。但这正在影响我的架构。我计划使用视图来访问数据库(作为额外的安全层),但现在我跳过这部分并直接通过 JPA 访问数据库。
猜你喜欢
  • 2012-03-15
  • 2017-08-15
  • 2012-01-15
  • 2013-04-03
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多