1
我想問你以下問題的幫助。我有方法:提交期間的延遲(使用JPA/JTA)
String sql = "INSERT INTO table ...."
Query query = em.createNativeQuery(sql);
query.executeUpdate();
sql = "SELECT max(id) FROM ......";
query = em.createNativeQuery(sql);
Integer importId = ((BigDecimal) query.getSingleResult()).intValue();
for (EndurDealItem item : deal.getItems()) {
String sql2 = "INSERT INTO another_table";
em.createNativeQuery(sql2).executeUpdate();
}
而且執行它後,數據不提交(需要10或15分鐘,直到數據被提交)。有沒有辦法顯式提交數據或觸發提交?是什麼原因導致交易長期停滯不前?
我們使用nativeQueries的原因是,我們正在某個共享接口上導出數據,並且我們不再使用這些數據。
我想提一下,交易是容器管理的(由Geronimo)。 EntityManager的是通過創建鏈接:
@PersistenceContext(unitName = "XXXX", type = PersistenceContextType.TRANSACTION)
private EntityManager em;
嗨Ondrej,你試過這個:em.getTransaction()。begin(); //你的代碼; em.getTransaction()提交();正如我所建議的?我認爲這將工作...讓我知道 – Paolof76
嘿,我試過兩種可能性,但問題是在EntityManager和事務 - >我被禁止使用getTransaction()並操縱它,因爲它是容器管理的事務。我現在正在調查OpenJPA設置中的一些屬性。 – holmicz