Bonjour, je développe une petite application et essaye de Créer 2 entités liées avec JPA/hibernate dans une application Spring Boot
Voilà les 2 entitées
et dans cette méthode, j'essaye de créer une Subscription avec un UserEntity, qui existe déjà en base de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 @Entity @Table(name="SUBSCRIPTION") public class Subscription implements Serializable { @Id @GeneratedValue(strategy= GenerationType.AUTO) private Long id; @ManyToOne() @JoinColumn(name = "CLIENT_ID", referencedColumnName = "ID", nullable=false) private UserEntity user; ........ ....... and @Entity @Table(name="USER1") public class UserEntity implements Serializable { @Id @GeneratedValue(strategy= GenerationType.AUTO) private Long id; @OneToMany(mappedBy="user", cascade = CascadeType.MERGE) private Set<Subscription> subscriptions; ..... ......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public SubscriptionDto createSubscription(SubscriptionDto subscriptionDto) { UserEntity user = new UserEntity(); user.setFirstName(subscriptionDto.getUser().getFirstName()); user.setLastName(subscriptionDto.getUser().getLastName()); user = this.userDao.update(user); Subscription subscription = new Subscription(); subscription.setTypeOfSubscription(subscriptionDto.getTypeOfSubscription()); subscription.setOptionsOfSubscription(subscriptionDto.getOptionsOfSubscription()); subscription.setSubscriptionDate(new Date()); subscription.setUser(user); subscription = this.subscriptionDao.update(subscription); avec public T update( T entity ){ return entityManager.merge( entity ); }
mais le système se plaint que le user existe déjà alors que j'ai cascade = CascadeType.MERGE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 jakarta.servlet.ServletException: Request processing failed: org.springframework.dao.DataIntegrityViolationException: could not execute statement [ERROR: duplicate key value violates unique constraint "user1_pkey" Détail : Key (id)=(1) already exists.] [insert into user1 (first_name,last_name,id) values (?,?,?)]; SQL [insert into user1 (first_name,last_name,id) values (?,?,?)]; constraint [user1_pkey]






Répondre avec citation



Partager