<!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-cdn.atlassian.com/754e8a43740f217add2548a1d6894960?s=48&amp;d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F754e8a43740f217add2548a1d6894960%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue" 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="DerEineDa" id="email_DerEineDa" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=DerEineDa" style="color:#6c797f;; color: #3b73af; text-decoration: none">Christian C</a> <strong>commented</strong> on <a href="https://hibernate.atlassian.net/browse/HHH-12436?atlOrigin=eyJpIjoiNGQ3NmZkZWE4ZWI3NDk0NjkxMmU0ZWU2NGEzZmM3NTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-7915d19d-7609-4a18-9a5b-f6067cd4d233" height="16" width="16" border="0" align="absmiddle" alt="Bug"> HHH-12436</a> </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 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-12436?atlOrigin=eyJpIjoiNGQ3NmZkZWE4ZWI3NDk0NjkxMmU0ZWU2NGEzZmM3NTEiLCJwIjoiaiJ9" style="color: #3b73af; text-decoration: none">Re: Attempted to assign id from null one-to-one property</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td id="text-paragraph-pattern-top" class="email-content-main mobile-expand  comment-top-pattern" 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; border-bottom: none; padding-bottom: 0" 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: 10px 0 0; margin-top: 0">We updated from 5.3.6 to 5.4.0 when this issue showed itself. We've also used every major version before that since 2011 or so, with only very small changes to the data model (only added new entities). </p> <p style="margin: 10px 0 0">(The funny thing is: Our codebase seems to be a very good test base for Hibernate, because almost every release of Hibernate breaks something major for us (not saying that it is always Hibernates fault) <img class="emoticon" src="cid:jira-generated-image-static-smile-7aab6b00-4ac8-48b2-a063-4642fb823a45" height="16" width="16" align="absmiddle" alt="" border="0"> </p> <p style="margin: 10px 0 0">The entities that broke with this change roughly looked like this (many properties omitted).</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">
@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>Schedule {
        <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">int</span> id;
        <span class="code-keyword" style="color: #000091">private</span> ScheduleData data = <span class="code-keyword" style="color: #000091">new</span> ScheduleData();

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">int</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">int</span> id) {
                <span class="code-keyword" style="color: #000091">this</span>.id = id;
                <span class="code-comment" style="color: #808080">// shared primary key:
</span>                getData().setId(id);
        }

        @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
        @PrimaryKeyJoinColumn
        @BatchSize(size = 256)
        <span class="code-keyword" style="color: #000091">public</span> ScheduleData getData() {
                <span class="code-keyword" style="color: #000091">return</span> data;
        }

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

@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>ScheduleData {
        <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">int</span> id;

        @Id
        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">int</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">int</span> id) {
                <span class="code-keyword" style="color: #000091">this</span>.id = id;
        }
}
</pre> 
                                                            </div>
                                                        </div> <p style="margin: 10px 0 0">If you tell me that this is an invalid model, I will believe you immediately. This is one of the most exotic and most ancient parts of our data model.</p> <p style="margin: 10px 0 0">Hibernate doesn't create foreign key constraints for this model, so we added one manually: </p> 
                                                        <div class="preformatted 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="preformattedContent panelContent" style="padding: 9px 12px"> 
                                                                <pre style="margin: 10px 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal; white-space: pre; word-break: normal; word-wrap: break-word; word-break: break-all; white-space: pre-wrap">ALTER TABLE ScheduleData ADD CONSTRAINT FK_ID FOREIGN KEY (id) REFERENCES Schedule (id) ON DELETE CASCADE;
</pre> 
                                                            </div>
                                                        </div> <p style="margin: 10px 0 0">Fortunately, I was able to properly fix this issue by changing the entities like this:</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">
@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>Schedule {
        <span class="code-keyword" style="color: #000091">private</span> <span class="code-object" style="color: #910091">int</span> id;
        <span class="code-keyword" style="color: #000091">private</span> ScheduleData data = <span class="code-keyword" style="color: #000091">new</span> ScheduleData();

        <span class="code-keyword" style="color: #000091">public</span> Schedule() {
                data.setSchedule(<span class="code-keyword" style="color: #000091">this</span>);
        }

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        <span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">int</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">int</span> id) {
                <span class="code-keyword" style="color: #000091">this</span>.id = id;
        }

        @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = <span class="code-quote" style="color: #009100">"schedule"</span>)
        @BatchSize(size = 256)
        <span class="code-keyword" style="color: #000091">public</span> ScheduleData getData() {
                <span class="code-keyword" style="color: #000091">return</span> data;
        }

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

@Entity
<span class="code-keyword" style="color: #000091">public</span> <span class="code-keyword" style="color: #000091">class </span>ScheduleData {
        <span class="code-keyword" style="color: #000091">private</span> Schedule id;

        @Id
        @OneToOne
        <span class="code-comment" style="color: #808080">// Bad name <span class="code-keyword" style="color: #000091; color: #808080">for</span> a foreign key, but <span class="code-keyword" style="color: #000091; color: #808080">this</span> name has been used in schema_add.sql since forever.
</span>        @JoinColumn(foreignKey = @ForeignKey(name = <span class="code-quote" style="color: #009100">"FK_ID"</span>))
        @OnDelete(action = OnDeleteAction.CASCADE)
        <span class="code-keyword" style="color: #000091">public</span> Schedule getId() {
                <span class="code-keyword" style="color: #000091">return</span> id;
        }

        <span class="code-keyword" style="color: #000091">public</span> void setSchedule(Schedule id) {
                <span class="code-keyword" style="color: #000091">this</span>.id = id;
        }
}
</pre> 
                                                            </div>
                                                        </div> <p style="margin: 10px 0 0">This seems to be possible since JPA 2.0, where you can use @Id and @OneToOne on the same attribute. This also creates the foreign key constraint for us, which is nice.</p> <p style="margin: 10px 0 0">I am not too sure if the model was invalid before (but it sure feels this way). If you still want a test case, I will see what I can do. Thanks for hearing me out!</p> </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-12436?inbox=true&focusedCommentId=104355&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-104355",
    "name": "View Comment"
      },
  "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-12436#add-comment?atlOrigin=eyJpIjoiNGQ3NmZkZWE4ZWI3NDk0NjkxMmU0ZWU2NGEzZmM3NTEiLCJwIjoiaiJ9" 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-d7e9560e-6c2b-48d8-bf99-94d7272d882b" 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-12436#add-comment?atlOrigin=eyJpIjoiNGQ3NmZkZWE4ZWI3NDk0NjkxMmU0ZWU2NGEzZmM3NTEiLCJwIjoiaiJ9" 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#100096-<span title="5c3add509cb0a40d4f138b4530b8b1183aa73421" data-commit-id="5c3add509cb0a40d4f138b4530b8b1183aa73421}">sha1:5c3add5</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-9ad78824-03e4-45eb-95ad-d3f7dd918d8f" 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/6JUiZ4Ekd80blh0Ohgfj_w~~/AAAAAQA~/RgRd-6vLPlcLYXRsYXNzaWFudXNCCgAAS3gaXEMlJ-ZSIGhpYmVybmF0ZS1pc3N1ZXNAbGlzdHMuamJvc3Mub3JnWAQAAAAE">
</body>
</html>