【问题标题】:Using EntityManager with Table API将 EntityManager 与表 API 一起使用
【发布时间】:2012-01-23 18:53:17
【问题描述】:

我正在开发一个 Java Web 应用程序,出于安全原因,我希望通过数据库 API 访问数据库 (PostgreSQL)。数据库的API由数据库函数构建。

如何使用 EntityManager 调用 API 函数?我想出了一种使用本机查询的方法,但我认为 ORM 所剩无几。有没有办法例如将 entityManager.persist() 方法引导到数据库函数之一?

【问题讨论】:

  • 那么基本上,您希望em.persist(...) 调用您自己的自定义数据库函数吗?
  • 是的,那有可能吗?

标签: java database hibernate api entitymanager


【解决方案1】:

这不是一个好主意。 JPA 的全部意义在于标准化访问数据库并将其映射到对象层的方式。如果您想使用本地 DB 函数,那么您应该使用 JDBC,可能通过 SpringJDBCTemplate 或其他一些可以减轻一些痛苦的工具。如果你真的想惩罚自己,你总是可以创建自己的 EntityManager 实现并在你的类中使用它。

【讨论】:

  • 但基本目的应该是,应用程序只能通过调用 API 函数的非特权 db-user 访问数据库。所以要使用这样的机制,我不应该使用 EntityManager 吗?有其他方法吗?
  • 如果有业务或技术主管指示您需要使用这些 API 功能,那么是的,您将被逼入绝境。确保给你这个限制的人知道他们通过强制这个限制了你的技术选择。使用 JDBC 可能是您最好的选择。
猜你喜欢
  • 2021-08-30
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2017-03-04
  • 2010-10-14
相关资源
最近更新 更多