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
Jpa 以类型安全的方式更新/删除-通过使用CriteriaQuery之类的工具?_Jpa_Orm_Eclipselink - Fatal编程技术网

Jpa 以类型安全的方式更新/删除-通过使用CriteriaQuery之类的工具?

Jpa 以类型安全的方式更新/删除-通过使用CriteriaQuery之类的工具?,jpa,orm,eclipselink,Jpa,Orm,Eclipselink,是否有可能对实体进行更新/删除类型安全的操作,如使用CriteriaQuery进行查询 我在这里的具体情况是,当我想在一段时间后删除一些带有EclipseLink的实体集时,我想避免本机查询。我正在使用日期比较和本机SQL进行比较。您认为对于我的情况,这是最好的用例用法吗?就我个人而言,我认为ORM提供者应该创建SQL并避免使用本机SQL 提前感谢您的建议, Simeon标准API尚不支持批量操作,但您可以使用常规JPQL更新和删除查询。提供者将把它们转换成SQL。在大多数情况下,不需要自己编写

是否有可能对实体进行更新/删除类型安全的操作,如使用CriteriaQuery进行查询

我在这里的具体情况是,当我想在一段时间后删除一些带有EclipseLink的实体集时,我想避免本机查询。我正在使用日期比较和本机SQL进行比较。您认为对于我的情况,这是最好的用例用法吗?就我个人而言,我认为ORM提供者应该创建SQL并避免使用本机SQL

提前感谢您的建议,
Simeon标准API尚不支持批量操作,但您可以使用常规JPQL更新和删除查询。提供者将把它们转换成SQL。在大多数情况下,不需要自己编写本机SQL

例如,提高员工工资,然后解雇他:

UPDATE Employee e
SET e.salary = 99999
WHERE e.salary = 88888


DELETE FROM Employee e
WHERE e.salary = 99999

谢谢,但由于在批量操作中无法使用与JPQL的日期比较,就像在您的示例中一样,我使用了Native,这就是为什么我希望避免使用它。如果有可能course@SimeonAngelov-你说的“没有办法”是什么意思?您可以使用日期obejcts或与JPQL中的其他类型一样的日期文本(bulk或not)。你们有并没有一个不起作用的特殊情况?正如我在互联网资源流中读到的,JPQL并没有日期算术,对吗?我的特殊情况是,我希望使用Query.executeUpdate()函数删除时间已过期的实体,而不是使用本机查询或源代码:1。String query=“从EclipseLink中日期操作的WHERE lastUsedTime中删除,请参见,或