[英]REPEATABLE_READ on Oracle using JPA in Spring
當我嘗試使用彈簧注釋將隔離級別設置為Oracle DB上的REPEATABLE_READ時,我得到:
java.sql.SQLException:READ_COMMITTED和SERIALIZABLE是唯一有效的事務級別。 -(ORA-17030)
這是解決這個問題的方法嗎?
@Transactional(isolation = Isolation.REPEATABLE_READ)
@Override
public List<ToMq> getAndChange1000NotForwarded() {
String queryText = "SELECT c FROM ToMq c WHERE c.forwarded = 0 AND";
TypedQuery<ToMq> query = em.createQuery(queryText, ToMq.class);
query.setMaxResults(1000);
List<ToMq> resultList = query.getResultList();
Date current = new Date();
for (ToMq toMq : resultList) {
toMq.setForwarded(Boolean.TRUE);
toMq.setForwardTimestamp(current);
}
save(resultList);
return resultList;
}
ORA-17030錯誤消息是Oracle JDBC驅動程序產生的JDBC錯誤消息。 根據Oracle 11g文檔,支持以下數據庫事務隔離級別:
因此,不可能對Oracle數據庫強制執行重復讀取 (ANSI / ISO)隔離級別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.