0
在休眠中,我們可以擁有會話緩存&會話工廠級緩存。我如何知道對象來自哪裏,會話緩存或會話工廠級緩存
現在,如果兩者都啓用,並且如果我得到一個實體,那麼有什麼方法可以知道實體從哪裏來?無論是來自一級還是二級緩存。 Session中有沒有什麼方法可以知道?
在休眠中,我們可以擁有會話緩存&會話工廠級緩存。我如何知道對象來自哪裏,會話緩存或會話工廠級緩存
現在,如果兩者都啓用,並且如果我得到一個實體,那麼有什麼方法可以知道實體從哪裏來?無論是來自一級還是二級緩存。 Session中有沒有什麼方法可以知道?
如果您在查詢實體之前知道該實體的標識符,則可以檢查2LC高速緩存以確定該實體是否至少在SessionFactory
作用域高速緩存中被高速緩存。您可以使用以下方法執行此操作:
session.getSessionFactory()。getCache()。containsEntity(EntityClass.class,entityId);
您可能能夠通過構建實體的虛設實例,設置標識符值,然後調用方法問1LC:
session.contains(theEntityInstance);
瞭解在這兩種情況下,如果你已經發出了與之前調用這兩種方法的那個標識特定實體的查詢,該實體將存在,這兩個方法調用的結果總是是true
。