java - Spring存储库中的Cassandra计数器数据类型操作

标签 java spring spring-boot cassandra spring-data-cassandra

我有一个 spring-boot 应用程序,我想在其中创建 Cassandra counter 表(如果不存在)。我正在使用存储库来实现相同的目的。

用户积分 POJO:

/**
 * 
 * @author Prakash Pandey 23-Nov-2017
 *
 */
@Table("user_points")
public class UserPoints {

    @PrimaryKeyColumn(name = "app_id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    private long appId;

    @PrimaryKeyColumn(name = "user_name", ordinal = 0, type = PrimaryKeyType.CLUSTERED)
    private String userName;

    @Column(value = "points")
    long points;


    public long getAppId() {
        return appId;
    }

    public void setAppId(long appId) {
        this.appId = appId;
    }

    public long getPoints() {
        return points;
    }

    public void setPoints(long points) {
        this.points = points;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Override
    public String toString() {
        return "UserPoints [appId=" + appId + ", userName=" + userName + ", points=" + points + "]";
    }
}

UserPointRepository POJO:

@Repository
public interface UserPointRepository extends CassandraRepository<UserPoints> {

}

该表已在 Cassandra 数据库中成功创建,定义如下:

CREATE TABLE user_points (
  app_id bigint,
  user_name text,
  points bigint,
  PRIMARY KEY (app_id, user_name)
)

问题points列的数据类型是bigint,预期是counter数据类型。

我有两个问题:

  1. 如何创建计数器(具有计数器的列 数据类型)使用存储库的表。
  2. 如何使用以下命令更新(递增、递减)计数器列 存储库。

最佳答案

TL;博士。

计数器不受存储库支持,我不确定是否有好的方法来支持它们。

说明

Spring Data Repositories 旨在使用传递给 save(Object) 的实际对象中的数据来保存/更新实体。不应用数据库端修饰符。计数器需要服务器端操作(递增、递减),而这些操作无法通过 save(...) 方法来表达。

关于java - Spring存储库中的Cassandra计数器数据类型操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47458760/

相关文章:

java - 类和包的区别

java - 如何在同一个数据库表上映射两个 JPA 或 Hibernate 实体

java - Jasypt:主密码如何安全?

ssl - Spring Boot - 启用和配置 SSL 证书

java - 如何在 android 中使用名称从 R. 加载

java - 未找到 Spring Webflow 架构 xsd

java - 是否可以将变量用作@JsonRootName?

java - 在预检中 Access-Control-Allow-Methods 不允许方法 PATCH

java - Spring Webflux 2.4.2 - actuator/auditevents/httptrace/integrationgraph/sessions 端点上的 404

Java 内部类