0

我的Java代码:

private EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu");
private EntityManager em = emf.createEntityManager();
while(condition){
em.merge(objects[i]);
}

可以正常执行,无异常但数据库表没有更新;我认为那是因为所有事务都排队,如果是的话,是否有立即提交事务?

4

1 回答 1

0

cassandra 不支持事务,所以除非你有一个像 zookeeper 这样的协调服务器,否则你不会有事务。PlayOrm 特别不符合 JPA,因为 noSQL 可以做的更像是在字符串列表或 LocalDate 列表上使用 @NoSqlEmbedded 标记。这些是 RDBMS 的 JPA 无法支持的东西,因为 RDBMS 没有宽行。无论如何,PlayOrm 是另一种选择,但同样,它不执行事务,但更适合支持当今使用的许多在 JPA 中不可行的 noSQL 模式。

在 PlayOrm 和 JPA 中,您都需要调用 flush。 你错过了冲洗的电话吗?

哦,我应该注意到 PlayOrm 在外观和感觉上与 JPA 非常相似,但具有更多的 noSQL 特定功能(另外它在需要时也可以连接)

于 2012-10-26T20:52:58.510 回答