Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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/visual-studio-2012/2.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
JPA在insert操作之前执行select语句两次_Jpa - Fatal编程技术网

JPA在insert操作之前执行select语句两次

JPA在insert操作之前执行select语句两次,jpa,Jpa,我正在尝试持久化多个实体,同时触发一些用于插入的select命令。我假设在插入之前有3个select命令,那么所有这些select命令在插入操作之前都会再次触发,有人能回答这个问题吗?解决了问题,这是我的解决方案,将帮助其他人 要防止第二次插入前选择,请使用Session.load()或EntityManager.getReference() session.load()方法最初并不加载任何内容,它只是为对象创建一个代理,并避免对数据库的命中 在这里,session.load()中传递的id参数

我正在尝试持久化多个实体,同时触发一些用于插入的select命令。我假设在插入之前有3个select命令,那么所有这些select命令在插入操作之前都会再次触发,有人能回答这个问题吗?

解决了问题,这是我的解决方案,将帮助其他人

要防止第二次插入前选择,请使用
Session.load()
EntityManager.getReference()

session.load()
方法最初并不加载任何内容,它只是为对象创建一个代理,并避免对数据库的命中


在这里,
session.load()
中传递的id参数来自我之前启动的select sql,我担心的是我又一次得到了hibernate正在执行的相同sql语句,现在我停止了hibernate框架使用load方法再次触发相同的select sql,现在只触发了一个select语句,而不是hibernate自动执行的额外语句。

包括您的代码和sql日志
User u = new User();
u.setUserStatusType( session.load(UserStatusType.class, new Long(id));
session.persis(u);