<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
    #email-body { min-width: 30em !important; }
    #email-page { padding: 8px !important; }
    #email-banner { padding: 8px 8px 0 8px !important; }
    #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
    #email-fields { padding: 0 8px 8px 8px !important; }
    #email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
    <tr valign="top">
        <td id="email-page" style="padding:16px !important;">
            <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
                <tr valign="top">
                    <td bgcolor="#3e4c4e" style="background-color:#3e4c4e;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="https://www.jboss.org/dms/hibernate/images/jira/jiraheader_hibernate.png" alt="" style="vertical-align:top;" /></td>
                </tr><tr valign="top">
    <td id="email-banner" style="padding:32px 32px 0 32px;">
        
                
        
        
            <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
                                        <img id="email-avatar" src="https://hibernate.onjira.com/secure/useravatar?avatarId=10162" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
                        <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
                                    <a class="user-hover" rel="utuba" id="email_utuba" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=utuba" style="color:#6c797f;">Matt Todd</a>
     created <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug"> <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/HHH-7561'>HHH-7561</a>
            </div>
                        <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
                <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/HHH-7561'><strong>PersistenceUnitUtil.getIdentifier returning null for a persisted proxy</strong></a>
            </div>
                    </td>
    </tr>
</table>
    </td>
</tr>
<tr valign="top">
    <td id="email-fields" style="padding:0 32px 32px 32px;">
        <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
            <tr valign="top">
                <td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Issue Type:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug">        Bug
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Affects Versions:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    4.1.6            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Assignee:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    Unassigned            </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Components:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    entity-manager            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Created:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        30/Aug/12 6:01 AM
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Description:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <p style='margin-top:0;margin-bottom:10px;'>When using the PersistenceUnitUtil.getIdentifier method to get the id back from a persisted entity, I have found that it returns null if the entity is a proxy.  When accessing the id property of the proxy entity, this has been set correctly.  It would appear that the implementation of this method is not correct.  Please see the test case described below:</p>

<p style='margin-top:0;margin-bottom:10px;'>persistence.xml</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence xmlns=<span class="code-quote">"http://java.sun.com/xml/ns/persistence"</span> <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span> xsi:schemaLocation=<span class="code-quote">"http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"</span> version=<span class="code-quote">"2.0"</span>&gt;</span>
        <span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"manager1"</span> transaction-type=<span class="code-quote">"RESOURCE_LOCAL"</span>&gt;</span>
                <span class="code-tag">&lt;provider&gt;</span>org.hibernate.ejb.HibernatePersistence<span class="code-tag">&lt;/provider&gt;</span>
                <span class="code-tag">&lt;properties&gt;</span>
                        <span class="code-tag"><span class="code-comment">&lt;!-- jdbc connection --&gt;</span></span>
                        <span class="code-tag">&lt;property name=<span class="code-quote">"hibernate.dialect"</span> value=<span class="code-quote">"org.hibernate.dialect.HSQLDialect"</span>/&gt;</span>
                        <span class="code-tag">&lt;property name=<span class="code-quote">"hibernate.hbm2ddl.auto"</span> value=<span class="code-quote">"update"</span>/&gt;</span>
                        <span class="code-tag">&lt;property name=<span class="code-quote">"hibernate.connection.driver_class"</span> value=<span class="code-quote">"org.hsqldb.jdbcDriver"</span>/&gt;</span>  
                        <span class="code-tag">&lt;property name=<span class="code-quote">"javax.persistence.jdbc.user"</span> value=<span class="code-quote">"sa"</span>/&gt;</span>  
                        <span class="code-tag">&lt;property name=<span class="code-quote">"javax.persistence.jdbc.password"</span> value=""/&gt;</span>
                        <span class="code-tag">&lt;property name=<span class="code-quote">"hibernate.connection.url"</span> value=<span class="code-quote">"jdbc:hsqldb:mem:test"</span>/&gt;</span>
                        <span class="code-tag">&lt;property name=<span class="code-quote">"hibernate.hbm2ddl.auto"</span> value=<span class="code-quote">"create-drop"</span>/&gt;</span>
                <span class="code-tag">&lt;/properties&gt;</span>
        <span class="code-tag">&lt;/persistence-unit&gt;</span>
<span class="code-tag">&lt;/persistence&gt;</span></pre>
</div></div>

<p style='margin-top:0;margin-bottom:10px;'>The Entity</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">@Entity
<span class="code-keyword">public</span> class EntityBean
{
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE)
        <span class="code-keyword">private</span> <span class="code-object">Long</span> id;
        
        @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
        <span class="code-keyword">private</span> EntityBean child;
        
        <span class="code-keyword">public</span> <span class="code-object">Long</span> getId()
        {
                <span class="code-keyword">return</span> id;
        }
        
        <span class="code-keyword">public</span> EntityBean getChild()
        {
                <span class="code-keyword">return</span> child;
        }
        
        <span class="code-keyword">public</span> void setChild(EntityBean child)
        {
                <span class="code-keyword">this</span>.child = child;
        }
}</pre>
</div></div>

<p style='margin-top:0;margin-bottom:10px;'>The Test case</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"><span class="code-keyword">public</span> class EntityBeanTest
{
        <span class="code-keyword">private</span> PersistenceUnitUtil persistenceUnitUtil;
        <span class="code-keyword">private</span> EntityManagerFactory entityManagerFactory;
        <span class="code-keyword">private</span> EntityManager entityManager;
        <span class="code-keyword">private</span> EntityTransaction entityTransaction;
        <span class="code-keyword">private</span> EntityBean parent;
        
        @Test
        <span class="code-keyword">public</span> void checkEntityIdFromProxy()
        {
                EntityBean child = parent.getChild();
                
                assertFalse(persistenceUnitUtil.isLoaded(child));
                
                assertEquals(child.getId(), persistenceUnitUtil.getIdentifier(child));
        }

        @Before
        <span class="code-keyword">public</span> void setUp()
        {
                entityManagerFactory = Persistence.createEntityManagerFactory(<span class="code-quote">"manager1"</span>);
                persistenceUnitUtil = entityManagerFactory.getPersistenceUnitUtil();
                entityManager = entityManagerFactory.createEntityManager();
                entityTransaction = entityManager.getTransaction();
                entityTransaction.begin();
                
                <span class="code-comment">// create an entity bean
</span>                EntityBean entityBean = <span class="code-keyword">new</span> EntityBean();
                entityBean.setChild(<span class="code-keyword">new</span> EntityBean());
                entityManager.persist(entityBean);
                
                entityManager.flush();
                
                <span class="code-comment">// get the id of the parent entity
</span>                <span class="code-object">Long</span> id = entityBean.getId();
                
                <span class="code-comment">// clear the first level cache
</span>                entityManager.clear();

                <span class="code-comment">// bring the parent back
</span>                parent = entityManager.find(EntityBean.class, id);
        }
        
        @After
        <span class="code-keyword">public</span> void tearDown()
        {
                entityTransaction.commit();
                entityManager.close();
                entityManagerFactory.close();
        }        
}</pre>
</div></div>
    </td>
</tr>
                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Environment:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        4.1.x &amp; HSQL, Postgresql, SQLServer
    </td>
</tr>
                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Project:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <a style="color:#6c797f;" href="https://hibernate.onjira.com/browse/HHH">Hibernate ORM</a>
    </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Priority:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                <img src="https://hibernate.onjira.com/images/icons/priority_major.gif" height="16" width="16" border="0" align="absmiddle" alt="Major">        Major
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Reporter:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                                        <a class="user-hover" rel="utuba" id="email_utuba" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=utuba" style="color:#6c797f;">Matt Todd</a>
                </td>
</tr>                                                    
    
    
                        </table>
                </td>
            </tr>
        </table>
    </td>
</tr>













            </table>
        </td><!-- End #email-page -->
    </tr>
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
            This message is automatically generated by JIRA.<br />
            If you think it was sent incorrectly, please contact your JIRA administrators<br />
            For more information on JIRA, see: <a style='color:#6c797f;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
        </td>
    </tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->