Enviorment-Hibernate查詢緩存不返回新添加的實體
Hibernate-啓用查詢緩存和二級緩存
緩存used-的Ehcache與updatetimestampcache設置是永恆的。
問題 - 對於實體E,I具有在表2點中的行。因此,在通過帶有setcacheable(true)的條件進行查詢(以獲取所有行)時,第一次填充第二級緩存和查詢緩存。
通過具有setcacheable(true)的條件進一步執行相同查詢從查詢緩存中提供。到現在爲止還挺好。
問題 - 通過事務服務層方法,使用hibernate保存實體E的新對象(現在不存在實體E的表中有3行)。 任何進一步查詢以獲取實體E的行(使用setcacheable(true))只返回2個對象。在哪裏應該返回3個對象。
看起來實體E的查詢緩存未驗證時,新實體保存在其表中。
要麼:更新沒有真正發生/提交,或者更新時間戳未更新......如何縮小問題出在哪裏可以嘗試使用不同的2LC提供程序來查看問題是否存在與EhCache或休眠。您可以嘗試Infinispan(https://github.com/galderz/secondlc中的一些示例)。即使對於插入,您也可以使用READ_ONLY並避免需要JTA事務。 –