Java dispose de la transient
mot-clé. Pourquoi JPA a-t-il @Transient
au lieu d'utiliser simplement le mot-clé java qui existe déjà ?
Réponses
Trop de publicités?En termes simples, si vous utilisez l'annotation @Transient sur un attribut d'une entité, cet attribut sera isolé et ne sera pas sauvegardé dans la base de données. Les autres attributs de l'objet au sein de l'entité seront toujours sauvegardés.
J'enregistre l'objet dans la base de données à l'aide de la méthode d'enregistrement intégrée au référentiel jpa :
userRoleJoinRepository.save(user2);
Je vais tenter de répondre à la question du "pourquoi". Imaginez une situation où vous avez une énorme base de données avec beaucoup de colonnes dans une table, et votre projet/système utilise des outils pour générer des entités à partir de la base de données. (Hibernate dispose de ces outils, etc...). Supposons maintenant que votre logique d'entreprise exige qu'un champ particulier ne soit PAS persisté. Vous devez "configurer" votre entité d'une manière particulière. Alors que le mot-clé Transient fonctionne sur un objet - comme il se comporte dans un langage Java, le mot-clé @Transient n'est conçu que pour répondre aux tâches qui concernent uniquement les tâches de persistance.
- Réponses précédentes
- Plus de réponses