【问题标题】:How to know if data is updated in database with spring data cassandra如何使用spring data cassandra知道数据库中的数据是否更新
【发布时间】:2017-09-22 06:09:21
【问题描述】:

如果我这样编写查询,则使用 spring data JPA:

@Query("update User u set  u.firstName=?1 where u.id=?2")
Integer updateFirstName(String firstName,String id);

updateFirstName 方法根据更新返回 0 或 1。但是在 spring data cassandra 中使用这个查询:

@Query("update User set  firstName=?0 where id=?1")
Integer updateFirstName(String firstName,String id);

我收到 null 。有什么方法可以让我确认更新操作已成功完成。

【问题讨论】:

    标签: java spring cassandra spring-data spring-data-cassandra


    【解决方案1】:

    可以使用查询方法调用任意 CQL,但您需要对齐返回类型(例如 Row)。此外,UPDATE 命令不会返回任何行,因此您不会收到任何结果。

    确认你的调用成功就是查询方法的正常终止。

    【讨论】:

    • 我已将我的查询更新为:@Query("update User set firstName=?0 where id=?1") Row updateFirstName(String firstName,String id);,但我正在执行此操作:java.lang.IllegalArgumentException: Entity must not be null!
    【解决方案2】:

    @Query 在 spring Data Jpa 中用于从 DB 中选择值。您可以将@Modifying@Query 一起使用。它将触发注释到方法的查询作为更新查询而不是选择一个。

    所以最终的形式是

    @Modifying @Query("update User set firstName=?0 where id=?1") Integer updateFirstName(String firstName,String id);

    【讨论】:

    • @Modifying 注解在 spring-data-cassandra 中不可用
    猜你喜欢
    • 2014-09-14
    • 2021-09-13
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多