데이터 저장소 Cassandra 2.0 드라이버를 사용하고 있으며 준비된 바인딩 문을 가지고 놀고 있습니다. 의 나는 이런 식으로 뭔가를 조회 할 가정 해 봅시다 : UUID1, UUID2, UUID3이 UUID 값입니다카산드라에서 값 집합으로 준비된 문
SELECT * FROM foo WHERE mykey IN (UUID1, UUID2, UUID3);
. 바운드 구문을 사용하여 프로그래밍 작업을 수행하는 방법은 무엇입니까? 현재 나는 다음의 라인을 따라 뭔가를 시도하고있다 :
preparedStatement = session.prepare("SELECT * FROM foo WHERE vref IN ?")
boundStatement = new BoundStatement(preparedStatement)
val uuids: java.util.ArrayList[java.util.UUID] = //assume we're getting the values from somewhere
session.execute(boundStatement.bind(uuids))
이것은 현재 잘못된 결과를 반환하고있다. 쿼리의 형식을 올바르게 지정하는 방법에 대한 제안 사항이 있습니까?
, 당신의 접근 방식은 올바른 것 같다. 어떤 종류의 잘못된 결과가 나타 납니까? 잘못된 행을 다시 얻는다면 이는 아마도 버그 일 것입니다. 예외가 발생하면 살펴볼 내용이 있습니다. 일부 구문 세부 사항을 수정해야 할 수도 있습니다. –
'IN'을 사용할 때는주의해야합니다. 프로덕션 클러스터에서 사용하려는 것은 아닙니다. http://stackoverflow.com/questions/26999098/is-the-in-relation-in-cassandra-bad-for-queries/ – Aaron