3

オブジェクトクラスにこのメソッドがある場合:

@OneToMany( fetch = FetchType.EAGER,
    cascade = { CascadeType.ALL },
    mappedBy = "object"  )
@org.hibernate.annotations.Cascade(
    {org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@Column( nullable = false  )
public Set<ObjectEntry> getObjectEntries() {
    return this.objectEntries;
}

と私は@cache両方をObjectEntry着ますObject

@Cache(usage =  CacheConcurrencyStrategy.READ_WRITE)
public class Object extends HashCodeValidator {

@Cache(usage =  CacheConcurrencyStrategy.READ_WRITE)
public class ObjectEntry extends HashCodeValidator 

次のように、getObjectEntriesに@cacheを配置する必要がありますか?

@org.hibernate.annotations.Cascade(
    {org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@Column( nullable = false  )
@Cache(usage =  CacheConcurrencyStrategy.READ_WRITE)
public Set<ObjectEntry> getObjectEntries() {
    return this.objectEntries;
}

特に追加する場合、クエリごとにキャッシュを定義する必要がありますか?

hibernate.cache.use_query_cache = true

4

1 に答える 1

0

(...)次のようにgetObjectEntriesに@cacheを配置する必要がありますか?

はい、必要に応じてコレクションをキャッシュする必要があります(特定のキャッシュ領域にキャッシュされます)。

特に追加する場合、クエリごとにキャッシュを定義する必要がありますか?hibernate.cache.use_query_cache = true

プロパティに関するリファレンスドキュメントhibernate.cache.use_query_cache(セクション3.4。オプションの構成プロパティ)から:

クエリキャッシュを有効にします。個々のクエリは引き続きcachableに設定する必要があります。 true|false

したがって、必要に応じて、 (クエリまたは基準オブジェクトを呼び出すことによって)クエリキャッシュ可能setCacheable(true)を設定する必要があります。これはIMOにとって良いことです。

于 2010-07-06T15:22:27.563 に答える