Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 Hibernate/JPA:update的where子句中包含字段_Java_Oracle_Hibernate_Jpa - Fatal编程技术网

Java Hibernate/JPA:update的where子句中包含字段

Java Hibernate/JPA:update的where子句中包含字段,java,oracle,hibernate,jpa,Java,Oracle,Hibernate,Jpa,在save()上,Hibernate像执行SQL一样执行 update TABLE_A set COL_A=? , COL_B=? , COL_C=? where COL_PK=? 有没有办法将此更改为: update TABLE_A set COL_A=? , COL_B=? where COL_PK=? and COL_C=? 这样做的原因是我们在COL_C上对表进行分区,除非我们在where子句中使用它,否则它将查看所有分区 在下面找到一个片段,它应该可以解释原理 int rowsU

在save()上,Hibernate像执行SQL一样执行

update TABLE_A set COL_A=? , COL_B=? , COL_C=? where COL_PK=?
有没有办法将此更改为:

update TABLE_A set COL_A=? , COL_B=?  where COL_PK=? and COL_C=?

这样做的原因是我们在COL_C上对表进行分区,除非我们在where子句中使用它,否则它将查看所有分区

在下面找到一个片段,它应该可以解释原理

int rowsUpdated = entityManager.createQuery("update YourEntity e"
    + " set e.columnA= :columnA"
    + " where e.columnPK = :columnPK"
    + " and e.columnC = :columnC")
    .setParameter("columnA", columnA)
    .setParameter("columnPK", columnPK)
    .setParameter("columnC", columnC)
    .executeUpdate();

使用hibernate
@DiscriminatorColumn
定义分区可能是一个解决方案感谢您的回答-我知道我可以编写更新查询。由于代码的结构方式,我希望在对对象调用save()时发生这种情况。