天天看點

Hibernate的Entity cache(實體緩存)

如果應用中設定了Hibernate的實體緩存,則Entity對象将被存儲到緩存中,Entity對象外鍵關聯的@ManyToOne或@OneToOne的資料也被存儲到緩存中。但是,除此之外的關聯都不會被存儲到緩存中。

1. Entity cache(實體緩存)示例:

@Entity(name = "Phone")
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public static class Phone {
...
           

2. 使用緩存中的Entity對象示例:

存儲到緩存中的Entity對象,在Session中可以直接通過id或NaturalId通路。

Person person = session.get( Person.class, 1L );
           

Person person = session
    .byNaturalId( Person.class )
    .using( "code", "unique-code")
    .load();
           

繼續閱讀