【问题标题】:DataStax accessor bean as bind paramDataStax 访问器 bean 作为绑定参数
【发布时间】:2015-02-10 09:28:44
【问题描述】:

我正在尝试使用 datastax 访问器(与使用映射器相比)。

我的访问器定义如下:

@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)

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

【问题讨论】:

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


    【解决方案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())调用方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多