Kundera cassandra — облегченная транзакция в методе слияния

Я использую kundera-cassandra V3.2 и хочу обновить объект с помощью метода слияния.

this.getManager().merge(entity); // this.getManager is a javax.persistence.EntityManager

Есть ли возможность использовать облегченную транзакцию (предложение IF) при вызове этого метода или мне нужно вручную создать запрос на обновление?


person K.E.    schedule 11.12.2015    source источник
comment
если Кундера утверждает, что он совместим с JPA, вам нужна транзакция вокруг него tx.begin, tx.commit.   -  person Neil Stockton    schedule 11.12.2015
comment
Спасибо за комментарий, но, на мой взгляд, облегченная транзакция не имеет ничего общего с управлением транзакциями jpa. Облегченная транзакция используется, если вы расширяете свой запрос дополнительным предложением. Мой вопрос: есть ли какая-либо реализация от Кундеры для добавления такого пункта при вызове метода слияния или сохранения EntityManager.   -  person K.E.    schedule 11.12.2015
comment
какой запрос? у вас нет вопросов в том, что вы разместили. Слияние будет выполнять UPDATE..., DELETE..., INSERT... и т. д. в зависимости от того, что вы изменили в объекте.   -  person Neil Stockton    schedule 11.12.2015
comment
У меня нет запроса - и он мне не нужен. Это было просто для описания того, что предназначено для облегченной транзакции в контексте кассандры. И извините, запрос был, возможно, неправильным термином -> оператор лучше   -  person K.E.    schedule 11.12.2015


Ответы (1)


В Kundera облегченные транзакции поддерживаются методом createNativeQuery. Не существует прямого метода слияния с облегченными транзакциями.

Образец кода:

String query = "UPDATE \"PERSONCASSANDRA\" SET \"PERSON_NAME\" = 'Pragalbh' WHERE \"PERSON_ID\" = '4' IF \"PERSON_NAME\" = 'Karthik'";
Query q = entityManager.createNativeQuery(query, PersonCassandra.class);
q.executeUpdate();

Пожалуйста, проверьте это тестовый пример для получения дополнительной информации.

person karthik manchala    schedule 14.12.2015