2014-12-11 2 views
1

Я пытаюсь использовать accessatax accessor (vs using mapper).DataStax accessor bean as bind param

Мой аксессор определяется следующим образом:

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

я получаю ошибки, которые говорят мне мои номера Param не совпадают.

ответ

1

Я не уверен, что это возможно, чтобы отправить объект и отобразить свойства этого объекта (возможно, некоторые текстовые нотации, но не проверить код или документацию). Возможно, ваши нотации будут работать, если вы работаете с 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); 

И yhan вы вызываете метод с insertProblem(bean.getBeanId(), bean.getBeanData())