@Immuable vs @Entity(mutable=false) dans Hibernate
Quelle est la différence entre les deux? 1 ou les deux être utilisés sur une entité?
OriginalL'auteur non sequitor | 2009-10-19
Vous devez vous connecter pour publier un commentaire.
Quelle est la différence entre les deux? 1 ou les deux être utilisés sur une entité?
OriginalL'auteur non sequitor | 2009-10-19
Vous devez vous connecter pour publier un commentaire.
Pour entité il n'y a pratiquement pas de différence.
@Immutable
la priorité (c'est si vous avez de l'entité qui est annoté à la fois comme@Immutable
et@Entity(mutable = "true")
il va être traités comme immuable).@Immutable
peut également être utilisé sur les collections avec à peu près la même sémantique. Les détails sont ici@immutable
appliquer aux collections).Ce n'est pas bien documentée, non.
EntityBinder
source commentaires décrivent l'prioritaires susmentionnées.OriginalL'auteur ChssPly76
La
org.hibernate.annotations.Entity
annotation est obsolète et sera supprimée dans une future version d'Hibernate.Par conséquent, vous devez toujours utiliser le
@Immutabale
annotation si vous avez des entités qui ne doivent jamais être modifiés par Hibernate.Comme je l'ai expliqué dans cet article, le
@Immutable
annotation indique à Hibernate pour charger les entités en mode lecture seule, d'où l'entité modifications ne peuvent pas être suivis par le sale mécanisme de contrôle de.Cependant, la
@Immutable
entités peuvent encore être mis à jour via JPQL ou Critères de l'API en vrac requêtes de mise à jour.Pour s'assurer
@Immutabale
entités ne sont jamais modifiés pour vrac requêtes de mise à jour, de mise en veille prolongée 5.2.17-delà, vous pouvez définir la propriété de configuration:Avec ce bien en place, un volume requête de mise à jour finira par lancer une exception et l'entité de mise à jour sera évité.
OriginalL'auteur Vlad Mihalcea