2011-12-12 2 views
4

Chaque seconde je stocke beaucoup d'objets Foo mais le nouvel objet est comparé au précédent. Puis-je configurer NHibernate Second Level Cache pour conserver uniquement le dernier objet Foo ou devrais-je l'implémenter moi-même?Comment conserver uniquement le dernier enregistrement dans le cache de second niveau?

Petit contexte:
Je objet Doo qui est mis en cache et ont LastFoo de référence à l'objet Foo. Doo est mis en cache mais pas Foo. Peut-être que ce cache ne peut être fait que par référence à la dernière Foo?

Plus fond:
Lorsque le nouveau Foo est créé, il est évident qu'il sera enregistré dans la base de données. Je me réfère à cela à travers la propriété LastFoo. Quand le prochain Foo est créé, je dois comparer avec le précédent et seulement celui-là. Je peux le prendre à partir de LastFoo mais NHibernate le demande toujours.

Comment éviter les db hit pour le précédent Foo (et seulement celui-ci, je ne veux pas mettre en cache tous les objets Foo)? Est-il même possible d'utiliser NHibernate ou dois-je le mettre en cache moi-même?

+0

Si vous essayez simplement de mettre en cache une instance particulière d'un Foo (le plus récemment créé), alors oui, je le mettrais simplement en cache. –

Répondre

0

J'ai décidé d'ajouter l'entité cacheable LatestFoo et de s'y référer.

Questions connexes