首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Kundera JPA的乐观锁定

对Kundera JPA的乐观锁定
EN

Stack Overflow用户
提问于 2016-05-25 12:03:38
回答 1查看 159关注 0票数 0

我正在尝试使用Kundera作为一个JPA实现,而不是cassandra (即事务管理功能)。

2个问题:

第一个问题

事务管理不支持本机查询是真的吗?也就是说,如果我这样做:

代码语言:javascript
复制
EntityManagerFactory emf = Persistence.createEntityManagerFactory("piccandra", getCassandraProperties());

EntityManager em = emf.createEntityManager();
em.setFlushMode(FlushModeType.COMMIT); 
em.getTransaction().begin();
Query q = em.createNativeQuery("insert into photographer (photographer_id, photographer_name) values ('id1', 'name1')");
q.executeUpdate();
em.getTransaction().rollback();

回滚不起作用吗?

第二个问题

如何对持久化执行乐观锁定(也称为CAS)?在卡桑德拉,我可以跑:

代码语言:javascript
复制
UPDATE photographer SET name = 'x' WHERE id = 1 AND update_date <= some-timestamp

当使用昆德拉时,我想持久化一个实体,但前提是它没有被其他人更改。我能这么做吗?

编辑:我看到JPA确实支持乐观锁定,但是Kundera并不支持它。

EN

回答 1

Stack Overflow用户

发布于 2016-05-26 16:28:49

  • 在本机查询的情况下,回滚将不起作用,因为在持久性上下文中没有映射到查询的实体对象(在事务中维护对象的状态是必需的)。
  • 昆德拉目前不支持乐观锁定。如果您正在寻找解决办法,您可以使用本机查询Cassandra。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37436549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档