J'ai deux entités liées à plusieurs à plusieurs: Film et Acteurentité avec plusieurs à plusieurs ayant erreur à insérer avec la même ID
Film
public class Movie {
@Id
private String imdbId;
@ManyToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER, targetEntity = Actor.class)
private Set<Actor> actor;
}
Acteur
public class Actor {
@Id
private String actorId;
}
Il est une api reposante et j'envoie json à MovieController. Mon json est:
{
"imdbId": "tt2395424",
"actor" : [{"actorId" : "0001"}, {"actorId" : "0002"}]
}
Cela fonctionne parfaitement bien et l'acteur est peuplé automatiquement. Mais quand j'insère un nouveau film avec le même acteur, il lance une erreur que l'acteur est déjà présent. Je suis confus parce que, pour autant que je sache, Hibernate compare l'identifiant avant l'insertion s'il n'est pas présent, il insérera d'autre simplement le mapper. Pouvez-vous s'il vous plaît me dire où je vais mal?
Mais j'utilise persist ... quelle est l'autre alternative à saveOrUpdate lors de l'utilisation de persist to save? –
Vous pouvez utiliser la fusion au lieu de persister, c'est une alternative à saveOrUpdate. Trouver plus de détails sur https://stackoverflow.com/questions/1069992/jpa-entitymanager-why-use-persist-over-merge –
Merci .. cela fonctionne, mais aucune idée sur ID généré automatiquement, car pour ceux que je suis peur, il crée un doublon –