DataStax访问器bean作为绑定参数

时间:2014-12-11 19:13:33

标签: java cassandra cql3 datastax datastax-java-driver

我正在尝试使用数据存取访问器(vs使用映射器)。

我的访问者定义如下:

@Accessor
public interface TableAccessor {
    @Query(
        "INSERT INTO tableName " +
        "(id, data)" +
        "VALUES (:beanId, :beanData)")
    public ResultSet insertProblem(@Param("bean") Bean bean);

我的bean被定义为。

@Table(name="tableName")
public class Bean {
    @PartitionKey
    @Column(name = "id")
    private int beanId;

    @PartitionKey
    @Column(name = "data")
    private Date beanData;

   // Setters and getters omitted 
}

我的问题是当我尝试这样的事情时:

insertProblem(@Param("bean") Bean bean)

我不断收到错误,告诉我我的参数号码不匹配。

1 个答案:

答案 0 :(得分:1)

我不确定是否可能,发送对象和映射该对象的属性(可能是一些点符号,但没有检查代码或文档)。如果你使用UDT并且你在DB中有Bean作为UDT,那么你的符号可能会有效。

可以肯定的是:

@Accessor
public interface TableAccessor {
    @Query(
        "INSERT INTO tableName " +
        "(id, data)" +
        "VALUES (:beanId, :beanData)")
    public ResultSet insertProblem(@Param("beanId") int beanId, @Param("beanData") Date beanData);

你用insertProblem(bean.getBeanId(), bean.getBeanData())

来调用方法