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
如何防止EclipseLink/JPA在每次插入之前进行选择?_Jpa_Eclipselink - Fatal编程技术网

如何防止EclipseLink/JPA在每次插入之前进行选择?

如何防止EclipseLink/JPA在每次插入之前进行选择?,jpa,eclipselink,Jpa,Eclipselink,如何防止EclipseLink/JPA在每次插入之前进行选择 下面示例中的父对象是缓存的,但每次添加子对象时,它都会先执行选择,然后执行插入。由于父对象已被缓存,因此选择似乎不必要 我的等级在下面。OneToMany设置为级联所有 班级家长 -列出儿童 非常感谢。EclipseLink不会在每次插入之前执行选择,而是默认启用共享缓存 请包括您的代码,包括您正在执行的操作和SQL日志 我猜您正在使用merge()?使用“合并”时,被合并的对象可以是新的或现有的,如果其id为null或0(取决于配置

如何防止EclipseLink/JPA在每次插入之前进行选择

下面示例中的父对象是缓存的,但每次添加子对象时,它都会先执行选择,然后执行插入。由于父对象已被缓存,因此选择似乎不必要

我的等级在下面。OneToMany设置为级联所有

班级家长 -列出儿童


非常感谢。

EclipseLink不会在每次插入之前执行选择,而是默认启用共享缓存

请包括您的代码,包括您正在执行的操作和SQL日志

我猜您正在使用merge()?使用“合并”时,被合并的对象可以是新的或现有的,如果其id为null或0(取决于配置),则将假定为“新建”,并且不会进行选择。如果它有一个非空的id并且是新的(不使用生成的id),则必须进行选择。考虑使用生成的ID,或者调用Surror(),而不是MeGe()。
如果它是现有对象,则必须选择当前副本以了解发生了哪些更改。正常情况下,它将位于共享缓存中,并且不会发生选择。如果您已禁用共享缓存,或者从未在此计算机上读取该对象,或者该对象已从共享缓存中过期,则将进行选择。

显示实体的代码以及用于插入的代码。