Etat de l'art POJO est dans les pourparlers de livre d'action à ce sujet
Si une application unique serveur met à jour la base de données en utilisant le framework de persistance, le cadre met à jour le cache au niveau du processus.
Et ...
objets qui sont mises en cache actualisable doivent généralement utiliser le verrouillage optimiste car qui empêchera l'application écrasements aveuglément des changements dans la base de données. ET si une transaction met à jour un objet mis en cache qui a déjà été modifié dans la base de données, l'échec de verrouillage optimiste entraînera l'annulation de la transaction. Le cadre de persistance supprime les données périmées du cache et l'application peut réessayer la transaction avec la dernière version des données.
Et choisissez l'une des stratégies suivantes en fonction JPA avec Hibernate livre
- transactionnelles: disponible dans un environnement géré seulement, il garantit la pleine isolement transactionnel à lecture répétée, si nécessaire. Utilisez cette stratégie pour lecture de données pour la plupart où il est essentiel d'empêcher les données obsolètes dans les transactions concurrentes, dans le cas rare d'une mise à jour. Lecture-écriture: Cette stratégie maintient l'isolation validée en lecture, en utilisant un mécanisme d'horodatage et n'est disponible que dans les environnements non-cluster. Encore une fois, utilisez cette stratégie pour les données lues principalement, où il est essentiel d'empêcher les données obsolètes dans les transactions concurrentes, dans le cas rare d'une mise à jour.
Ajouté à anwser d'origine: Hibernate NE GARANTIT PAS la cohérence entre le cache et la base de données que vous utilisez @Cache (utilisation = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE). Si vous voulez l'utiliser, vous DEVREZ donc configurer un délai d'expiration suffisamment court qui peut affecter la performance.
salutations,
Pouvez-vous clarifier ce que vous essayez de faire? Demandez-vous comment mettre en cache manuellement les entités après la fusion de telle sorte qu'Hibernate les utilise lors d'appels get() ultérieurs? Un échantillon de code ou une description plus détaillée du problème aiderait. – ChssPly76