Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将EntityManager与表API一起使用_Java_Database_Hibernate_Api_Entitymanager - Fatal编程技术网

Java 将EntityManager与表API一起使用

Java 将EntityManager与表API一起使用,java,database,hibernate,api,entitymanager,Java,Database,Hibernate,Api,Entitymanager,我正在开发一个Java Web应用程序,出于安全原因,希望通过数据库API访问数据库(PostgreSQL)。数据库的API由数据库函数构建 如何使用EntityManager调用API函数?我找到了一种使用本机查询的方法,但我认为ORM已经所剩无几了。例如,是否有方法将entityManager.persist()方法引入数据库函数之一?这不是一个好主意。JPA的整个要点是标准化数据库访问和映射到对象层的方式。如果您想使用本机DB函数,那么您应该使用JDBC,可能通过SpringJDBCTem

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


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

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

那么基本上,你希望
em.persist(…)
调用你自己的自定义数据库函数吗?是的,这样做可能吗?但基本目的应该是,应用程序将仅通过调用API函数的非特权db用户访问数据库。所以要使用这样的机制,我不应该使用EntityManager?有没有替代方法?如果有一个业务或技术指导指令要求您使用这些API函数,那么是的,您将陷入困境。确保给你这个限制的人知道他们是在限制你的技术选择。使用JDBC可能是最好的选择。