2010-06-17 3 views
1

Quelle stratégie de concurrence de cache doit être utilisée pour les champs @ManyToOne pour une classe d'entité particulière. Ne serait-il logique d'utiliser READ_ONLY au lieu de READ_WRITE, étant donné que ces champs ne changent généralement pas après la création de l'entitéQuelle stratégie de concurrence de cache doit être utilisée pour les champs @ManyToOne

@ManyToOne(fetch = FetchType.LAZY) 
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
... 
private User user; 
+0

Celui qui répond à vos besoins! –

Répondre

3

Si ces champs « habituellement ne changent pas » par opposition à « ne changera jamais », puis READ_ONLY est pas une option. Les autres stratégies de concurrence de cache offrent des compromis différents entre le débit de la base de données et l'intégrité de la transaction. Le choix dépendra de vos circonstances et exigences particulières.

+0

l'ID de clé primaire pour ces champs ne changera certainement pas, mais le contenu pourrait changer. Mais aucune des pages d'interface utilisateur ne montre d'informations provenant de ces champs (c'est-à-dire qu'elles n'existent principalement qu'en raison de contraintes de clé étrangère). Donc, READ_ONLY sera-t-il un bon choix? – Sam

+0

Si les données ne peuvent pas changer pendant que l'application est en cours d'exécution, READ_ONLY devrait être très bien. Sinon, je recommanderais d'utiliser READ_WRITE ou autre chose. – btreat

Questions connexes