Я пытаюсь удалить определенную запись из базы данных по строке. Но когда я пытаюсь выполнить этот запрос:Kundera for Cassandra - Удаление записи по строке строки
Query query = em.createQuery(
"DELETE FROM User u WHERE u.userId = :u");
query.setParameter("u", userID).executeUpdate();
Я получил это исключение: «Условие = не suported для запроса на ключ строки!».
Есть ли обходной путь, или я чего-то не хватает?
Wouldn» t, которые заставляют базу данных читать: (... в PlayOrm для cassandra и JPA вместо этого вы используете User user = em.getReference (User.clas, userId) и em.remove (пользователь), поэтому вам не нужны дополнительные базы данных читать. –
em.getReference (User.clas, userId) Как бы вы получили ссылку на фактическую запись, не касаясь DB даже для заполнения в cac он вам нужен. В любом случае, другим способом является выполнение запроса CQL. Также с 2.1 и выше такие запросы должны работать. -Vivek –
вы можете посмотреть код спящего режима или PlayOrm, но в основном getReference просто обертывает Id без touch db, а затем удаляет распаковки и отправляет в удалении строку с идентификатором, равным этому идентификатору, поэтому чтение из базы данных не требуется. .. Иногда нет необходимости помещать его в кеш, поэтому я не уверен, почему вы ссылаетесь на кеш. –