我可以从UPDATE查询而不是整数返回自定义对象吗?

时间:2019-04-18 06:48:47

标签: java sql spring-data

执行UPDATE查询时,它总是返回INT受影响的行数。 也许有某种方法可以返回例如所有对象的列表,这些对象的位置已更新或第一个已更新?

我有@Entity SecurityPolicy,并且希望在更新后恢复此对象。 所以这是我的代码:

@Modifying
@Query(value = "UPDATE security_policy s set max_fail_sign_in =:maxFailSignIn," +
        " min_password_length =:minPasswordLength," +
        " capital_in_password =:capitalInPassword," +
        " digit_in_password =:digitInPassword," +
        nativeQuery = true)
SecurityPolicy updateSecurityPolicy(@Param("maxFailSignIn") Integer maxFailSignIn,
                                          @Param("minPasswordLength") Integer minPasswordLength,
                                          @Param("capitalInPassword") Boolean capitalInPassword,
                                          @Param("digitInPassword") Boolean digitInPassword);

使用@Modifying时,它告诉我结果应为Int,没有它-无法提取ResultSet。 我知道使用spring数据可以轻松地保存或更新某些实体并将其作为结果,因此我想要实现类似的目的。

1 个答案:

答案 0 :(得分:0)

不能,因为整数响应不是由框架而是由RDBMS本身(SQL规范)生成的。该整数表示查询修改了多少行。

由于您不想使用JPA进行此操作,因此更新后必须SELECT进行该行操作,就像使用普通SQL一样。