我有一個大的查詢看起來是這樣的:變化Oracle數據庫是不可見的某個查詢
SELECT stuff, CASE WHEN (some subselect) > 0 THEN 'value 1'
WHEN (another subselect) > 0 THEN 'value 2'
ELSE 'value 3' END AS status
FROM (yet another subselect) e
它的偉大工程。但是,從Spring開始,我通過JpaRepositories進行了一些影響some subselect
部分的更改,但由於某些原因,這些更改並非立竿見影。在其他查詢中,這些更改是可見的,我試着在Spring中使用幾種跨國機制,儘量不使用事務,我在存儲庫上使用saveAndFlush
,沒有任何運氣。
但是,如果我在更改顯示之前重新啓動Tomcat服務器,也會發生此延遲。這個延遲也可以從外部數據庫操作程序中看到,所以我猜這個問題不在我的應用程序中。
某種Oracle高速緩存或事務會影響這種情況嗎?我如何清除,沖洗,提交它們?
Edit(對於請求評論):
在Java中,我只進行基本的改變
Java代碼
MyEntity myEntity = myEntityDao.findOne(someId);
myEntity.setProperty(newValue);
myEntityDao.saveAndFlush(myEntity);
凡myEntityDao看起來像
@Repository
public interface MyEntityDao extends JpaRepository<MyEntity, Integer> {
//... other unrelated HQL query methods
}
對不起,我不能發佈更具體的內容,但它是擁抱而且,我也不能,因爲公司的原因。還要注意,一切正常,但在修改和這個特定查詢之間存在一定的延遲。其他查詢可以立即看到更改。
您能否請包括相關的JPA Java代碼? –
添加更多詳情 – SinistraD
我的猜測(猜猜這是不好的)是因爲春天會有一些奇怪的事情發生。我懷疑JPA接口在像Oracle這樣的支持良好的RDBMS中會遇到這樣的問題。 –