Si j'ai cette méthode dans la classe d'objet:cache de mise en veille prolongée compréhension
@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;
}
et je mets @cache
à la fois sur ObjectEntry
et Object
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Object extends HashCodeValidator {
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ObjectEntry extends HashCodeValidator
Ai-je besoin de mettre @cache sur getObjectEntries comme ceci:
@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;
}
Dois-je définir e cache pour chaque requête si j'ajoute spécifiquement
hibernate.cache.use_query_cache = true
?
une autre question. Pourquoi ai-je besoin de mettre en cache la collection de getObjectEntries? Cela ne va-t-il pas trop agrandir la mémoire? Est-ce que Hibernate peut juste sauvegarder une référence à l'objet qui existe et pas une référence à tout le collecion? – Dejell