我正在尝试使用datastax访问器(使用映射器)。
我的访问器定义如下:
@Accessor
public interface TableAccessor {
@Query(
"INSERT INTO tableName " +
"(id, data)" +
"VALUES (:beanId, :beanData)")
public ResultSet insertProblem(@Param("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)
我不断收到错误消息,告诉我我的参数编号不匹配。
最佳答案
我不确定甚至不可能发送对象并映射该对象的属性(可能是点符号,但没有检查代码或文档)。如果您使用UDT
并且在数据库中将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())
调用方法关于java - DataStax访问器bean作为绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27430611/