我的Java代码:
private EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu");
private EntityManager em = emf.createEntityManager();
while(condition){
em.merge(objects[i]);
}
它可以正常执行,没有任何异常,但在数据库表中没有更新;我认为这是因为所有事务都是排队的,如果是队列,有没有立即提交事务的方法?
发布于 2012-10-26 20:52:59
cassandra不支持事务,所以除非你有一个像zookeeper这样的协调服务器,否则你不会有事务。PlayOrm特别不符合JPA,因为noSQL可以做到这一点,就像在字符串列表或LocalDate列表上使用@NoSqlEmbedded标记一样。这些都是RDBMS的JPA不能支持的,因为RDBMS没有宽行。无论如何,PlayOrm是另一种选择,但同样,它不做事务,而是更适合于支持当今使用的许多noSQL模式,而这些模式在JPA中是不可行的。
但在PlayOrm和JPA中,您确实需要调用flush。是否缺少对flush的调用?
哦,我应该指出的是,PlayOrm在外观和感觉上与JPA非常非常相似,但具有更多noSQL特有的特性(另外,它还可以在需要时加入)
https://stackoverflow.com/questions/13083332
复制相似问题