<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 
        <base href="https://hibernate.atlassian.net"> 
        <title>Message Title</title> 
    </head> 
    <body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429"> 
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <tr> 
                    <td id="header-pattern-container" style="padding: 0; border-collapse: collapse; padding: 10px 20px"> 
                        <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/557058:276bf199-dfe4-434e-9d73-dcd6e7cc756a/e59097b9-93c5-49e3-b2d1-f9f52368dffb/128?size=48&amp;s=48" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td> 
                                    <td id="header-text-container" valign="middle" style="padding: 0; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="behrangsa1" style="color:#6c797f;; color: #3b73af; text-decoration: none" id="email_behrangsa1" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A276bf199-dfe4-434e-9d73-dcd6e7cc756a"> Behrang </a> <strong>created</strong> an issue </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="email-content-container" style="padding: 0; border-collapse: collapse; padding: 0 20px"> 
                        <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; border-spacing: 0; border-collapse: separate"> 
                            <tbody>
                                <tr> 
                                    <!-- there needs to be content in the cell for it to render in some clients --> 
                                    <td class="email-content-rounded-top mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> 
                                        <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="page-title-pattern-first-line " style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none">Hibernate ORM</a> / <a href="https://hibernate.atlassian.net/browse/HHH-13578?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-7f95a092-3004-425a-a98e-eefe2f253c54" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HHH-13578?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none">HHH-13578</a> </td> 
                                                </tr> 
                                                <tr> 
                                                    <td style="vertical-align: top;; padding: 0; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-13578?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none">Hibernate 5.4.4.Final @OneToMany with @JoinTable throws org.hibernate.exception.ConstraintViolationException</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 10px; padding-bottom: 5px" bgcolor="#ffffff"> 
                                        <table class="keyvalue-table" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Issue Type:</th> 
                                                    <td class="has-icon" style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-avatar-7f95a092-3004-425a-a98e-eefe2f253c54" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"> Bug </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Affects Versions:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 5.4.4 </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Assignee:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> Unassigned </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Attachments:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> bug-report.zip </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Components:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> hibernate-entitymanager </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Created:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> 14/Aug/2019 05:48 AM </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Priority:</th> 
                                                    <td class="has-icon" style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <img src="cid:jira-generated-image-static-blocker-9517bac1-cb1a-469e-bf1c-f5a42c3ba61f" height="16" width="16" border="0" align="absmiddle" alt="Blocker" style="vertical-align: text-bottom"> Blocker </td> 
                                                </tr> 
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Reporter:</th> 
                                                    <td style="padding: 0; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="behrangsa1" style="color:#6c797f;; color: #3b73af; text-decoration: none" id="email_behrangsa1" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A276bf199-dfe4-434e-9d73-dcd6e7cc756a"> Behrang </a> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; padding-top: 5px; padding-bottom: 10px" bgcolor="#ffffff"> 
                                        <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0; border-collapse: collapse; padding: 0 0 10px"> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0; margin-top: 0">Project reproducing issue is attached.</p> 
                                                        <hr> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Possibly related to: <a href="https://hibernate.atlassian.net/browse/HHH-6776" class="external-link" rel="nofollow" style="color: #3b73af; text-decoration: none">https://hibernate.atlassian.net/browse/HHH-6776</a></p> 
                                                        <hr> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Entities:</p> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-keyword" style="color: #000091">package</span> org.hibernate.bugreport.jointable.constraintviolation.entity;

<span class="code-keyword" style="color: #000091">import</span> org.hibernate.annotations.GenericGenerator;

<span class="code-keyword" style="color: #000091">import</span> javax.persistence.*;
<span class="code-keyword" style="color: #000091">import</span> java.util.HashSet;
<span class="code-keyword" style="color: #000091">import</span> java.util.Objects;
<span class="code-keyword" style="color: #000091">import</span> java.util.Set;

@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>Laptop {

    @Id
    @GeneratedValue(generator = <span class="code-quote" style="color: #009100">"UUID"</span>)
    @GenericGenerator(
            name = <span class="code-quote" style="color: #009100">"UUID"</span>,
            strategy = <span class="code-quote" style="color: #009100">"org.hibernate.id.UUIDGenerator"</span>
    )
    <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> id;

    <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> brand;

    <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> series;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name = <span class="code-quote" style="color: #009100">"laptop_components"</span>,
            joinColumns = @JoinColumn(
                    name = <span class="code-quote" style="color: #009100">"laptop_id"</span>,
                    referencedColumnName = <span class="code-quote" style="color: #009100">"id"</span>
            ),
            inverseJoinColumns = @JoinColumn(
                    name = <span class="code-quote" style="color: #009100">"component_id"</span>,
                    referencedColumnName = <span class="code-quote" style="color: #009100">"id"</span>
            )
    )
    <span class="code-keyword" style="color: #000091">private</span> Set&lt;Component&gt; components = <span class="code-keyword" style="color: #000091">new</span> HashSet&lt;&gt;();

    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getId() {
        <span class="code-keyword" style="color: #000091">return</span> id;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setId(<span class="code-object" style="color: #910091">String</span> id) {
        <span class="code-keyword" style="color: #000091">this</span>.id = id;
    }

    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getBrand() {
        <span class="code-keyword" style="color: #000091">return</span> brand;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setBrand(<span class="code-object" style="color: #910091">String</span> brand) {
        <span class="code-keyword" style="color: #000091">this</span>.brand = brand;
    }

    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getSeries() {
        <span class="code-keyword" style="color: #000091">return</span> series;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setSeries(<span class="code-object" style="color: #910091">String</span> series) {
        <span class="code-keyword" style="color: #000091">this</span>.series = series;
    }

    <span class="code-keyword" style="color: #000091">public</span> Set&lt;Component&gt; getComponents() {
        <span class="code-keyword" style="color: #000091">return</span> components;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setComponents(Set&lt;Component&gt; components) {
        <span class="code-keyword" style="color: #000091">this</span>.components = components;
    }

    <span class="code-keyword" style="color: #000091">public</span> void addComponent(Component component) {
        getComponents().add(component);
        component.setLaptop(<span class="code-keyword" style="color: #000091">this</span>);
    }

    @Override
    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">boolean</span> equals(<span class="code-object" style="color: #910091">Object</span> o) {
        <span class="code-keyword" style="color: #000091">if</span> (<span class="code-keyword" style="color: #000091">this</span> == o) <span class="code-keyword" style="color: #000091">return</span> <span class="code-keyword" style="color: #000091">true</span>;
        <span class="code-keyword" style="color: #000091">if</span> (o == <span class="code-keyword" style="color: #000091">null</span> || getClass() != o.getClass()) <span class="code-keyword" style="color: #000091">return</span> <span class="code-keyword" style="color: #000091">false</span>;
        Laptop laptop = (Laptop) o;
        <span class="code-keyword" style="color: #000091">return</span> Objects.equals(id, laptop.id);
    }

    @Override
    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">int</span> hashCode() {
        <span class="code-keyword" style="color: #000091">return</span> Objects.hash(id);
    }
}

<span class="code-keyword" style="color: #000091">package</span> org.hibernate.bugreport.jointable.constraintviolation.entity;

<span class="code-keyword" style="color: #000091">import</span> org.hibernate.annotations.GenericGenerator;

<span class="code-keyword" style="color: #000091">import</span> javax.persistence.*;
<span class="code-keyword" style="color: #000091">import</span> java.util.Objects;

@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>Component {

    @Id
    @GeneratedValue(generator = <span class="code-quote" style="color: #009100">"UUID"</span>)
    @GenericGenerator(
            name = <span class="code-quote" style="color: #009100">"UUID"</span>,
            strategy = <span class="code-quote" style="color: #009100">"org.hibernate.id.UUIDGenerator"</span>
    )
    <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> id;

    <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">String</span> name;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinTable(
            name = <span class="code-quote" style="color: #009100">"laptop_components"</span>,
            joinColumns = @JoinColumn(
                    name = <span class="code-quote" style="color: #009100">"component_id"</span>,
                    referencedColumnName = <span class="code-quote" style="color: #009100">"id"</span>
            ),
            inverseJoinColumns = @JoinColumn(
                    name = <span class="code-quote" style="color: #009100">"laptop_id"</span>,
                    referencedColumnName = <span class="code-quote" style="color: #009100">"id"</span>
            )
    )
    <span class="code-keyword" style="color: #000091">private</span> Laptop laptop;

    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getId() {
        <span class="code-keyword" style="color: #000091">return</span> id;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setId(<span class="code-object" style="color: #910091">String</span> id) {
        <span class="code-keyword" style="color: #000091">this</span>.id = id;
    }

    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> getName() {
        <span class="code-keyword" style="color: #000091">return</span> name;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setName(<span class="code-object" style="color: #910091">String</span> name) {
        <span class="code-keyword" style="color: #000091">this</span>.name = name;
    }

    <span class="code-keyword" style="color: #000091">public</span> Laptop getLaptop() {
        <span class="code-keyword" style="color: #000091">return</span> laptop;
    }

    <span class="code-keyword" style="color: #000091">public</span> void setLaptop(Laptop laptop) {
        <span class="code-keyword" style="color: #000091">this</span>.laptop = laptop;
    }

    @Override
    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">boolean</span> equals(<span class="code-object" style="color: #910091">Object</span> o) {
        <span class="code-keyword" style="color: #000091">if</span> (<span class="code-keyword" style="color: #000091">this</span> == o) <span class="code-keyword" style="color: #000091">return</span> <span class="code-keyword" style="color: #000091">true</span>;
        <span class="code-keyword" style="color: #000091">if</span> (o == <span class="code-keyword" style="color: #000091">null</span> || getClass() != o.getClass()) <span class="code-keyword" style="color: #000091">return</span> <span class="code-keyword" style="color: #000091">false</span>;
        Component component = (Component) o;
        <span class="code-keyword" style="color: #000091">return</span> Objects.equals(id, component.id);
    }

    @Override
    <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">int</span> hashCode() {
        <span class="code-keyword" style="color: #000091">return</span> Objects.hash(id);
    }
}
</pre> 
                                                            </div>
                                                        </div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0"><tt>persistence.xml</tt></p> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
&lt;persistence xmlns=<span class="code-quote" style="color: #009100">"http:<span class="code-comment" style="color: #808080">//java.sun.com/xml/ns/persistence"</span>
</span>             xmlns:xsi=<span class="code-quote" style="color: #009100">"http:<span class="code-comment" style="color: #808080">//www.w3.org/2001/XMLSchema-instance"</span>
</span>             xsi:schemaLocation=<span class="code-quote" style="color: #009100">"http:<span class="code-comment" style="color: #808080">//java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence"</span>
</span>             version=<span class="code-quote" style="color: #009100">"1.0"</span>&gt;
    &lt;persistence-unit name=<span class="code-quote" style="color: #009100">"JoinTableConstraintViolation"</span> transaction-type=<span class="code-quote" style="color: #009100">"RESOURCE_LOCAL"</span>&gt;
        &lt;<span class="code-keyword" style="color: #000091">class&amp;</span>gt;org.hibernate.bugreport.jointable.constraintviolation.entity.Laptop&lt;/<span class="code-keyword" style="color: #000091">class&amp;</span>gt;
        &lt;<span class="code-keyword" style="color: #000091">class&amp;</span>gt;org.hibernate.bugreport.jointable.constraintviolation.entity.Component&lt;/<span class="code-keyword" style="color: #000091">class&amp;</span>gt;
        &lt;properties&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.dialect"</span> value=<span class="code-quote" style="color: #009100">"org.hibernate.dialect.H2Dialect"</span>/&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.hbm2ddl.auto"</span> value=<span class="code-quote" style="color: #009100">"create"</span>/&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.connection.driver_class"</span> value=<span class="code-quote" style="color: #009100">"org.h2.Driver"</span>/&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.connection.username"</span> value=<span class="code-quote" style="color: #009100">"sa"</span>/&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.connection.password"</span> value=<span class="code-quote" style="color: #009100">"password"</span>/&gt;
            &lt;property name=<span class="code-quote" style="color: #009100">"hibernate.connection.url"</span> value=<span class="code-quote" style="color: #009100">"jdbc:h2:file:~/diaries/diary1"</span>/&gt;
        &lt;/properties&gt;
    &lt;/persistence-unit&gt;
&lt;/persistence&gt;
</pre> 
                                                            </div>
                                                        </div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Test case:</p> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-keyword" style="color: #000091">package</span> org.hibernate.bugreport.jointable.constraintviolation;

<span class="code-keyword" style="color: #000091">import</span> org.hibernate.bugreport.jointable.constraintviolation.entity.Component;
<span class="code-keyword" style="color: #000091">import</span> org.hibernate.bugreport.jointable.constraintviolation.entity.Laptop;
<span class="code-keyword" style="color: #000091">import</span> org.junit.Test;

<span class="code-keyword" style="color: #000091">import</span> javax.persistence.EntityManager;
<span class="code-keyword" style="color: #000091">import</span> javax.persistence.EntityManagerFactory;
<span class="code-keyword" style="color: #000091">import</span> javax.persistence.EntityTransaction;
<span class="code-keyword" style="color: #000091">import</span> javax.persistence.Persistence;

<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>JoinTableTests {

    @Test
    <span class="code-keyword" style="color: #000091">public</span> void testSetup() {
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(<span class="code-quote" style="color: #009100">"JoinTableConstraintViolation"</span>);
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        EntityTransaction transaction = entityManager.getTransaction();
        transaction.begin();

        Laptop laptop = <span class="code-keyword" style="color: #000091">new</span> Laptop();
        laptop.setBrand(<span class="code-quote" style="color: #009100">"Toshiba"</span>);
        laptop.setSeries(<span class="code-quote" style="color: #009100">"Protege"</span>);

        Component component = <span class="code-keyword" style="color: #000091">new</span> Component();
        component.setName(<span class="code-quote" style="color: #009100">"RAM"</span>);

        laptop.addComponent(component);

        entityManager.persist(laptop);
        transaction.commit();
    }
}
</pre> 
                                                            </div>
                                                        </div> <p style="margin-top:0;margin-bottom:10px;; margin: 10px 0 0">Output:</p> 
                                                        <div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px; border-radius: 3px; margin: 9px 0">
                                                            <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                                <pre class="code-java" style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
ug 14, 2019 10:40:26 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [name: JoinTableConstraintViolation]
Aug 14, 2019 10:40:26 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.4.4.Final}
Aug 14, 2019 10:40:27 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager &lt;clinit&gt;
INFO: HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
Aug 14, 2019 10:40:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not <span class="code-keyword" style="color: #000091">for</span> production use!)
Aug 14, 2019 10:40:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:file:~/diaries/diary1]
Aug 14, 2019 10:40:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=sa, password=****}
Aug 14, 2019 10:40:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: <span class="code-keyword" style="color: #000091">false</span>
Aug 14, 2019 10:40:27 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections &lt;init&gt;
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Aug 14, 2019 10:40:28 PM org.hibernate.dialect.Dialect &lt;init&gt;
INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Aug 14, 2019 10:40:29 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@7d151a] <span class="code-keyword" style="color: #000091">for</span> (non-JTA) DDL execution was not in auto-commit mode; the Connection <span class="code-quote" style="color: #009100">'local transaction'</span> will be committed and the Connection will be set into auto-commit mode.
Aug 14, 2019 10:40:29 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@7180e701] <span class="code-keyword" style="color: #000091">for</span> (non-JTA) DDL execution was not in auto-commit mode; the Connection <span class="code-quote" style="color: #009100">'local transaction'</span> will be committed and the Connection will be set into auto-commit mode.
Aug 14, 2019 10:40:29 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Aug 14, 2019 10:40:29 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 23505, SQLState: 23505
Aug 14, 2019 10:40:29 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Unique index or primary key violation: <span class="code-quote" style="color: #009100">"PUBLIC.PRIMARY_KEY_A ON PUBLIC.LAPTOP_COMPONENTS(LAPTOP_ID, COMPONENT_ID) VALUES 1"</span>; SQL statement:
insert into laptop_components (laptop_id, component_id) values (?, ?) [23505-199]
Aug 14, 2019 10:40:29 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release
INFO: HHH000010: On release of batch it still contained JDBC statements



javax.persistence.RollbackException: Error <span class="code-keyword" style="color: #000091">while</span> committing the transaction

        at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:81)
        at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:107)
        at org.hibernate.bugreport.jointable.constraintviolation.JoinTableTests.testSetup(JoinTableTests.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
        at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
        at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
        at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:65)
        ... 24 more
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
        at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59)
        at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)
        at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
        at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1353)
        at org.hibernate.action.internal.CollectionRecreateAction.execute(CollectionRecreateAction.java:52)
        at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)
        at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:478)
        at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:361)
        at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:40)
        at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1493)
        at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:496)
        at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3371)
        at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2540)
        at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:473)
        at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:178)
        at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:39)
        at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:271)
        at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
        ... 23 more
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: <span class="code-quote" style="color: #009100">"PUBLIC.PRIMARY_KEY_A ON PUBLIC.LAPTOP_COMPONENTS(LAPTOP_ID, COMPONENT_ID) VALUES 1"</span>; SQL statement:
insert into laptop_components (laptop_id, component_id) values (?, ?) [23505-199]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
        at org.h2.message.DbException.get(DbException.java:205)
        at org.h2.message.DbException.get(DbException.java:181)
        at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:103)
        at org.h2.mvstore.db.MVSecondaryIndex.checkUnique(MVSecondaryIndex.java:220)
        at org.h2.mvstore.db.MVSecondaryIndex.add(MVSecondaryIndex.java:196)
        at org.h2.mvstore.db.MVTable.addRow(MVTable.java:546)
        at org.h2.command.dml.Insert.insertRows(Insert.java:180)
        at org.h2.command.dml.Insert.update(Insert.java:132)
        at org.h2.command.CommandContainer.update(CommandContainer.java:133)
        at org.h2.command.Command.executeUpdate(Command.java:267)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:200)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:154)
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)
        ... 39 more
</pre> 
                                                            </div>
                                                        </div> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff"> <script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "EmailMessage",
  "description": "View Issue",
  "potentialAction": {
    "@type": "ViewAction",
        "target": "https://hibernate.atlassian.net/browse/HHH-13578?inbox=true&",
    "name": "View Issue"
      },
  "publisher": {
    "@type": "Organization",
    "name": "Atlassian",
    "url": "https://www.atlassian.com"
  }
}
</script> 
                                        <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="actions-pattern-container" valign="middle" style="padding: 0; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                                        <table align="left" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                                            <tbody>
                                                                <tr> 
                                                                    <td class="actions-pattern-action-icon-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HHH-13578#add-comment?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-7a036e82-eef7-48e0-ba0e-b368a45c94c1" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td> 
                                                                    <td class="actions-pattern-action-text-container" style="padding: 0; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://hibernate.atlassian.net/browse/HHH-13578#add-comment?atlOrigin=eyJpIjoiN2NlNTlhYzdjOTUxNGQyMThlZmFiNDg0YmQwYjdkYTEiLCJwIjoiaiJ9" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td> 
                                                                </tr> 
                                                            </tbody>
                                                        </table> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <!-- there needs to be content in the cell for it to render in some clients --> 
                                <tr> 
                                    <td class="email-content-rounded-bottom mobile-expand" style="padding: 0; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff">&nbsp;</td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
                <tr> 
                    <td id="footer-pattern" style="padding: 0; border-collapse: collapse; padding: 12px 20px"> 
                        <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-mobile-separated-links" class="mobile-resize-text" width="100%" colspan="2" style="padding: 0; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> Get Jira notifications on your phone! Download the Jira Cloud app for <a href="https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail" style="color: #3b73af; text-decoration: none">Android</a> or <a href="https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8" style="color: #3b73af; text-decoration: none">iOS</a> 
                                        <hr> </td> 
                                </tr> 
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian Jira <span id="footer-build-information">(v1001.0.0-SNAPSHOT#100107-<span title="19a616b928fcd3c60e01fc5a8dc02650d3705c39" data-commit-id="19a616b928fcd3c60e01fc5a8dc02650d3705c39}">sha1:19a616b</span>)</span> </td> 
                                    <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                        <table style="border-collapse: collapse; mso-table-lspace: 0; mso-table-rspace: 0"> 
                                            <tbody>
                                                <tr> 
                                                    <td id="footer-pattern-logo-desktop-padding" style="padding: 0; border-collapse: collapse; padding-top: 3px; opacity: 0.150"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-c1e5ea09-b081-4d40-b316-014d744e4f23" alt="Atlassian logo" title="Atlassian logo" width="192" height="24" class="image_fix"> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
            </tbody>
        </table>   
    
<img border="0" width="1" height="1" alt="" src="http://atlassian.et.e.sparkpost.com/q/8koW64J_dwoqL3IPUVDEkA~~/AAAAAQA~/RgRfNTaBPlcLYXRsYXNzaWFudXNCCgAAAQNUXa9PeLFSIGhpYmVybmF0ZS1pc3N1ZXNAbGlzdHMuamJvc3Mub3JnWAQAAAAE">
</body>
</html>