<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - JPA</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur l'API de persistance JPA (Java Persistence API).]]></description>
		<language>fr</language>
		<lastBuildDate>Sat, 13 Jun 2026 10:00:43 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - JPA</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Créer 2 entités liées avec JPA dans une application Spring Boot</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184078&amp;goto=newpost</link>
			<pubDate>Thu, 04 Jun 2026 12:49:55 GMT</pubDate>
			<description>Bonjour, je développe une...</description>
			<content:encoded><![CDATA[<div>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<br />
<br />
Voilà les 2 entitées<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;">@Entity</span>
<span style="color: #339933;">@Table</span><span class="br0">&#40;</span>name=<span style="color: #FF0000;">&quot;SUBSCRIPTION&quot;</span><span class="br0">&#41;</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> Subscription  <span style="color: #0000ff;">implements</span> Serializable <span class="br0">&#123;</span>
    <span style="color: #339933;">@Id</span>
    <span style="color: #339933;">@GeneratedValue</span><span class="br0">&#40;</span>strategy= GenerationType.AUTO<span class="br0">&#41;</span>
    <span style="color: #0000ff;">private</span> Long id;
&nbsp;
    <span style="color: #339933;">@ManyToOne</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span style="color: #339933;">@JoinColumn</span><span class="br0">&#40;</span>name = <span style="color: #FF0000;">&quot;CLIENT_ID&quot;</span>, referencedColumnName = <span style="color: #FF0000;">&quot;ID&quot;</span>, nullable=<span style="color: #0000ff;">false</span><span class="br0">&#41;</span>
    <span style="color: #0000ff;">private</span> UserEntity user;
    ........
    .......
&nbsp;
and
&nbsp;
<span style="color: #339933;">@Entity</span>
<span style="color: #339933;">@Table</span><span class="br0">&#40;</span>name=<span style="color: #FF0000;">&quot;USER1&quot;</span><span class="br0">&#41;</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> UserEntity <span style="color: #0000ff;">implements</span> Serializable <span class="br0">&#123;</span>
&nbsp;
    <span style="color: #339933;">@Id</span>
    <span style="color: #339933;">@GeneratedValue</span><span class="br0">&#40;</span>strategy= GenerationType.AUTO<span class="br0">&#41;</span>
    <span style="color: #0000ff;">private</span> Long id;
&nbsp;
    <span style="color: #339933;">@OneToMany</span><span class="br0">&#40;</span>mappedBy=<span style="color: #FF0000;">&quot;user&quot;</span>, cascade = CascadeType.MERGE<span class="br0">&#41;</span>
    <span style="color: #0000ff;">private</span> Set&lt;Subscription&gt; subscriptions;
    .....
    ......</pre></td></tr></table></code><hr />
</div>et dans cette méthode, j'essaye de créer une Subscription avec un UserEntity, qui existe déjà en base de données<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">public</span> SubscriptionDto createSubscription<span class="br0">&#40;</span>SubscriptionDto subscriptionDto<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    UserEntity user = <span style="color: #0000ff;">new</span> UserEntity<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    user.setFirstName<span class="br0">&#40;</span>subscriptionDto.getUser<span class="br0">&#40;</span><span class="br0">&#41;</span>.getFirstName<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    user.setLastName<span class="br0">&#40;</span>subscriptionDto.getUser<span class="br0">&#40;</span><span class="br0">&#41;</span>.getLastName<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    user = <span style="color: #0000ff;">this</span>.userDao.update<span class="br0">&#40;</span>user<span class="br0">&#41;</span>;
    Subscription subscription = <span style="color: #0000ff;">new</span> Subscription<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    subscription.setTypeOfSubscription<span class="br0">&#40;</span>subscriptionDto.getTypeOfSubscription<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    subscription.setOptionsOfSubscription<span class="br0">&#40;</span>subscriptionDto.getOptionsOfSubscription<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    subscription.setSubscriptionDate<span class="br0">&#40;</span><span style="color: #0000ff;">new</span> Date<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    subscription.setUser<span class="br0">&#40;</span>user<span class="br0">&#41;</span>;
    subscription = <span style="color: #0000ff;">this</span>.subscriptionDao.update<span class="br0">&#40;</span>subscription<span class="br0">&#41;</span>;
&nbsp;
&nbsp;
avec 
&nbsp;
<span style="color: #0000ff;">public</span> T update<span class="br0">&#40;</span> T entity <span class="br0">&#41;</span><span class="br0">&#123;</span>
    <span style="color: #0000ff;">return</span> entityManager.merge<span class="br0">&#40;</span> entity <span class="br0">&#41;</span>;
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
mais le système se plaint que le user existe déjà alors que j'ai  cascade = CascadeType.MERGE<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
jakarta.servlet.ServletException: Request processing failed: org.springframework.dao.DataIntegrityViolationException: could not execute statement <span class="br0">&#91;</span>ERROR: duplicate key value violates unique constraint <span style="color: #FF0000;">&quot;user1_pkey&quot;</span>
  D&eacute;tail : Key <span class="br0">&#40;</span>id<span class="br0">&#41;</span>=<span class="br0">&#40;</span><span style="color: #cc66cc;">1</span><span class="br0">&#41;</span> already exists.<span class="br0">&#93;</span> <span class="br0">&#91;</span>insert into user1 <span class="br0">&#40;</span>first_name,last_name,id<span class="br0">&#41;</span> values <span class="br0">&#40;</span>?,?,?<span class="br0">&#41;</span><span class="br0">&#93;</span>; SQL <span class="br0">&#91;</span>insert into user1 <span class="br0">&#40;</span>first_name,last_name,id<span class="br0">&#41;</span> values <span class="br0">&#40;</span>?,?,?<span class="br0">&#41;</span><span class="br0">&#93;</span>; constraint <span class="br0">&#91;</span>user1_pkey<span class="br0">&#93;</span></pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f737/java/general-java/persistance-donnees/jpa/">JPA</category>
			<dc:creator>flamant</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184078/java/general-java/persistance-donnees/jpa/creer-2-entites-liees-jpa-application-spring-boot/</guid>
		</item>
	</channel>
</rss>
