Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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 JPA使用程序进行更新和删除_Java_Mysql_Jpa_Stored Procedures_Java Stored Procedures - Fatal编程技术网

Java JPA使用程序进行更新和删除

Java JPA使用程序进行更新和删除,java,mysql,jpa,stored-procedures,java-stored-procedures,Java,Mysql,Jpa,Stored Procedures,Java Stored Procedures,我正在为我的应用程序使用JPA,在db表上有select、insert、update和delete的安全检查。此外,还有使用pass、user\u id、table\u id以及表安全操作(选择、插入、更新、删除)检查安全性的过程。已经有了通过pass参数执行插入、更新和删除的过程 在这种情况下,更新和删除的最佳做法是什么。我是否直接使用实体,例如: ex: entityManager.save, entityManager.delete) 或者我是否使用当前的过程来执行这些事务(插入、更新和

我正在为我的应用程序使用JPA,在db表上有select、insert、update和delete的安全检查。此外,还有使用pass、user\u id、table\u id以及表安全操作(选择、插入、更新、删除)检查安全性的过程。已经有了通过pass参数执行插入、更新和删除的过程

在这种情况下,更新和删除的最佳做法是什么。我是否直接使用实体,例如:

ex: entityManager.save, entityManager.delete)
或者我是否使用当前的过程来执行这些事务(插入、更新和删除)


您是否检查了数据库管理员以了解这些过程的作用?可以在后台进行日志记录,以跟踪更改和安全性,这可能很重要。如果没有,那么您可以直接使用JPA方法。谢谢您的回复,是的,我已经检查过了,这些过程很重要,因为访问带有操作的表有一个限制,并且数据库用户与应用程序用户不同,这就是限制。由于JPA通常通过数据源访问数据库,它通常与单个数据库用户绑定,应用程序用户已经被授予了对数据源的访问权限,因此我假设不需要进行数据库安全检查和开销。可以将提供程序配置为在CRUD操作的封面下使用存储过程,因此您仍然可以在应用程序中使用JPA持久化、合并、删除和查找操作。但这需要在JPA之外进行自定义本机配置。您是否检查了数据库管理员以了解这些过程的作用?可以在后台进行日志记录,以跟踪更改和安全性,这可能很重要。如果没有,那么您可以直接使用JPA方法。谢谢您的回复,是的,我已经检查过了,这些过程很重要,因为访问带有操作的表有一个限制,并且数据库用户与应用程序用户不同,这就是限制。由于JPA通常通过数据源访问数据库,它通常与单个数据库用户绑定,应用程序用户已经被授予了对数据源的访问权限,因此我假设不需要进行数据库安全检查和开销。可以将提供程序配置为在CRUD操作的封面下使用存储过程,因此您仍然可以在应用程序中使用JPA持久化、合并、删除和查找操作。但这需要JPA之外的自定义本机配置。
StoredProcedureQuery storedProcedure = em.createStoredProcedureQuery("delete_from_table");
storedProcedure.registerStoredProcedureParameter("table_name", String.class, ParameterMode.IN);
storedProcedure.registerStoredProcedureParameter("row_id", int.class, ParameterMode.IN);
// execute SP
storedProcedure.execute();
......
. 
.
.