1

我正在尝试按行键从数据库中删除特定记录。但是当我尝试执行这个查询时:

 Query query = em.createQuery(
            "DELETE FROM User u WHERE u.userId = :u");

 query.setParameter("u", userID).executeUpdate();

我得到了这个例外:“ Condition = is not suported for query on row key! ”。

有什么解决方法,还是我遗漏了什么?

4

3 回答 3

2

您可以做的解决方法是:

查找使用:用户 u = em.find(User.class, userId)

然后,em.delete(u);

于 2012-07-26T12:02:35.220 回答
1

此外, http ://groups.google.com/group/kundera-discuss/subscribe 可以为您提供快速和更好的支持来讨论有关 Kundera 的问题。

-维维克

于 2012-07-26T13:13:54.803 回答
1

执行这种删除的一种可能方法(在一个使用 Kundera 的命令中,目前版本 2.2)是使用“本机查询”,例如:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu");

EntityManager em = emf.createEntityManager();

// "table" is the table name (case sensitive) you name your table in Cassandra
String query = "delete from table where key = 'keyValue'";

// "TablePersistencyEntity" is the Kundera Persistency Entity (Class) for the "table" 
Query q = em.createNativeQuery(query, TablePersistencyEntity.class);
q.getResultList();

em.close();
于 2013-06-24T21:47:50.787 回答