Comment utiliser cascade type d'enregistrer,supprimer, mettre à jour dans hibernate annotations
Quelqu'un peut-il m'expliquer les hibernate annotations comment utiliser les différents types de cascade comme supprimer,upadte,enregistrez-la mise à jour?
Comment puis-je faire lorsqu'un Propriétaire est supprimé, sa voiture est supprimé (mais pas l'inverse)
@Entity
public class Owner
{
@OneToOne(cascade=CascadeType.ALL)
private DrivingLicense license;
@OneToMany(mappedBy="owner", cascade={CascadeType.PERSIST, CascadeType.MERGE})
private Collection cars;
...
}
@Entity
public class DrivingLicense
{
private String serialNumber;
...
}
@Entity
public class Car
{
private String registrationNumber;
@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE})
private Owner owner;
...
}
peut savoir pourquoi u les gars sont à la baisse ont voté pour ma quetion? J'ai beaucoup cherché pour trouver la réponse à cette question dans google, mais je me force à comprendre comment l'utiliser
j'ai lu que celui qui tous sont là, dans le mappage xml pas dans l'annotation si tu m'envoyer le lien de ce qui serait formidable.
Celui-ci est bon: datanucleus.org/products/datanucleus/jpa/orm/cascading.html
"Ne pas comprendre" est trop large d'un problème. Afin d'obtenir une bonne réponse, la question doit être porté. Si vous avez trouvé un particulier de la partie que vous ne comprenez pas, demandez à ce sujet de très une partie, perferably avec un exemple de code. Si vous n'avez pas compris le tuto, en principe, StackOverflow n'aidera pas beaucoup -, vous aurez à aller un pas en arrière et répéter le matériel d'introduction.
Je comprends peu à partir de votre lien, j'ai un doute quant à que si je supprime le propriétaire je veux supprimer voiture aussi mais si supprimer voiture, je ne veux pas supprimer le propriétaire u pour le faire.
j'ai lu que celui qui tous sont là, dans le mappage xml pas dans l'annotation si tu m'envoyer le lien de ce qui serait formidable.
Celui-ci est bon: datanucleus.org/products/datanucleus/jpa/orm/cascading.html
"Ne pas comprendre" est trop large d'un problème. Afin d'obtenir une bonne réponse, la question doit être porté. Si vous avez trouvé un particulier de la partie que vous ne comprenez pas, demandez à ce sujet de très une partie, perferably avec un exemple de code. Si vous n'avez pas compris le tuto, en principe, StackOverflow n'aidera pas beaucoup -, vous aurez à aller un pas en arrière et répéter le matériel d'introduction.
Je comprends peu à partir de votre lien, j'ai un doute quant à que si je supprime le propriétaire je veux supprimer voiture aussi mais si supprimer voiture, je ne veux pas supprimer le propriétaire u pour le faire.
OriginalL'auteur user3214269 | 2014-01-20
Vous devez vous connecter pour publier un commentaire.
Le piège ici est qu'il y a deux CascadeType des enums. L'un est de javax.la persistance, l'autre est de mise en veille prolongée. En général, je préfère utiliser la persistance.
Pour mettre à jour en cascade, gardez à l'esprit que "mise à jour" est une veille prolongée terme, et jpa ne le sait pas encore. Jpa n'a pas besoin de ça, parce que dans la JPA l'idée est que la mise à jour des champs de chasse de la base de données automatiquement. Si vous avez fait des changements dans les relations, les chasse d'eau aussi bien. Si vous n'avez pas besoin d'une cascade sur la mise à jour.
Pour économiser de mise à jour, c'est une hibernate raccourci à l'aide de persister ou de mise à jour en fonction de l'état de l'objet. Puisque vous êtes déjà couvrant persistent et mise à jour(voir ci-dessus), vous n'avez pas besoin d'une cascade.
Cascade delete, vous voudrez probablement utiliser
@OrphanRemoval
à la place. Cela permettra de s'assurer que si le parent d'un rapport est supprimé, l'enfant est parti, trop (mais pas l'inverse).c'est à partir de votre propre code... voir stackoverflow.com/questions/11938253/jpa-joincolumn-vs-mappedby
OriginalL'auteur Joeri Hendrickx