如何在Play框架1.3.x中以编程方式设置转换隔离级别?

时间:2016-06-03 04:36:43

标签: java playframework

我想暂时更改特定操作的事务隔离级别,而不是整个应用程序。我将如何在Play框架中执行此操作?

1 个答案:

答案 0 :(得分:1)

我认为这不可能开箱即用。您可以更改配置中所有事务的默认隔离,但不能更改单个事务。

您可以尝试使用类似的内容(未测试):

public void doSomething() {
    // (...)
    org.hibernate.Session session = JPA.em().unwrap(Session.class);
    int def = session.connection().getTransactionIsolation();
    session.connection().setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
    Transaction tx = session.beginTransaction();
    // Do your work. ex: session.persist(someUser);
    tx.commit();
    session.connection().setTransactionIsolation(def);       
}

还有方法Session.doWork,它为您提供了一个普通的连接对象,您可以使用它创建手动事务/查询。