<!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: #333; 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: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
            <!-- header here --> 
            <tr> 
                <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px"> 
                    <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                        <tr> 
                            <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="https://secure.gravatar.com/avatar/b47c7c9e06fdad75e0971b147a5f9105?d=mm&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: 0px; 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="jwoe" id="email_jwoe" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=jwoe" style="color:#6c797f;; color: #3b73af; text-decoration: none">Jonas Woerlein</a> <strong>commented</strong> on <a href="https://hibernate.atlassian.net/browse/HBX-849" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-static-task-37e8617a-c9bb-4145-b5bc-4fe0f2bf2543" height="16" width="16" border="0" align="absmiddle" alt="Patch" /> HBX-849</a> 
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
            <tr> 
                <td id="email-content-container" style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate"> 
                        <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: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; 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">
                                &nbsp;
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                    <tr> 
                                        <td style="vertical-align: top;; padding: 0px; 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/HBX-849" style="color: #3b73af; text-decoration: none">Re: Tools does not insert @Type in POJOs for user types defined in reveng.xml</a> </span> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td id="text-paragraph-pattern-top" class="email-content-main mobile-expand  comment-top-pattern" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff; border-bottom: none; padding-bottom: 0"> 
                                <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px"> 
                                    <tr> 
                                        <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> 
                                            <p style="margin: 10px 0 0 0">This issue still exists in Version 4.3.1.CR1. However, thanks Reiner, I was able to get it to work with the solution above, which should really be incorporated into the next Hibernate Tools Version.</p> 
                                            <p style="margin: 10px 0 0 0">But this fix imposed another issue. I have a UserType which is configured via a parameter like this in the class' hbm.xml-file: </p> 
                                            <div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
                                                <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                    <pre class="code-xml" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-tag" style="color: #000091">&lt;property name=<span class="code-quote" style="color: #009100">&quot;status&quot;</span> nullable=<span class="code-quote" style="color: #009100">&quot;true&quot;</span>&gt;</span>
            <span class="code-tag" style="color: #000091">&lt;type name=<span class="code-quote" style="color: #009100">&quot;usertype.GenericEnumUserType&quot;</span>&gt;</span>
                <span class="code-tag" style="color: #000091">&lt;param name=<span class="code-quote" style="color: #009100">&quot;enumClassName&quot;</span>&gt;</span>datatypes.Status<span class="code-tag" style="color: #000091">&lt;/param&gt;</span>
            <span class="code-tag" style="color: #000091">&lt;/type&gt;</span>
<span class="code-tag" style="color: #000091">&lt;/property&gt;</span>
</pre> 
                                                </div>
                                            </div> 
                                            <p style="margin: 10px 0 0 0">This parameter is then used to configure the return value of the usertype's <tt>returnedClass()</tt>-method. As I don't know how to read the parameter out of the <tt>Property</tt>-parameter of <tt>generateAnnTypeAnnotation()</tt> I solved it this way:</p> 
                                            <div class="code panel" style="border-width: 1px;; border: 1px solid #ccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #ccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
                                                <div class="codeContent panelContent" style="padding: 9px 12px"> 
                                                    <pre class="code-java" style="margin: 10px 0 0 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal">
<span class="code-keyword" style="color: #000091">public</span> <span class="code-object" style="color: #910091">String</span> generateAnnTypeAnnotation(<span class="code-keyword" style="color: #000091">final</span> POJOClass pojoClass, <span class="code-keyword" style="color: #000091">final</span> Property property) {
    <span class="code-keyword" style="color: #000091">final</span> Type type = property.getType();
    <span class="code-keyword" style="color: #000091">if</span> (type <span class="code-keyword" style="color: #000091">instanceof</span> CustomType) {
        <span class="code-keyword" style="color: #000091">if</span> (((CustomType) type).getUserType() <span class="code-keyword" style="color: #000091">instanceof</span> GenericEnumUserType) {
            <span class="code-object" style="color: #910091">String</span> enumClassName = ((GenericEnumUserType) ((CustomType) type).getUserType()).returnedClass().getName();
            <span class="code-keyword" style="color: #000091">return</span> <span class="code-quote" style="color: #009100">&quot;    @&quot;</span> + pojoClass.importType(<span class="code-quote" style="color: #009100">&quot;org.hibernate.annotations.Type&quot;</span>) + <span class="code-quote" style="color: #009100">&quot;(type=\&quot;</span>&quot; + type.getName()
                    + <span class="code-quote" style="color: #009100">&quot;\&quot;</span>, parameters = { @<span class="code-quote" style="color: #009100">&quot; + pojoClass.importType(&quot;</span>org.hibernate.annotations.Parameter&quot;)
                    + <span class="code-quote" style="color: #009100">&quot;(name = \&quot;</span>enumClassName\<span class="code-quote" style="color: #009100">&quot;, value = \&quot;</span><span class="code-quote" style="color: #009100">&quot; + enumClassName + &quot;</span>\<span class="code-quote" style="color: #009100">&quot;) })&quot;</span>;
        }
        <span class="code-keyword" style="color: #000091">return</span> <span class="code-quote" style="color: #009100">&quot;    @&quot;</span> + pojoClass.importType(<span class="code-quote" style="color: #009100">&quot;org.hibernate.annotations.Type&quot;</span>) + <span class="code-quote" style="color: #009100">&quot;(type=\&quot;</span><span class="code-quote" style="color: #009100">&quot; + type.getName() + &quot;</span>\<span class="code-quote" style="color: #009100">&quot;)&quot;</span>;
    }
    <span class="code-keyword" style="color: #000091">else</span> {
        <span class="code-keyword" style="color: #000091">return</span> &quot;&quot;;
    }
}
</pre> 
                                                </div>
                                            </div> 
                                            <p style="margin: 10px 0 0 0">This approach works, but I don't really like it as it's not generic. I have found out that the properties and type parameters are still stored in the POJOClass object but there seems to be signifant effort (e.g. loop through all properties, find the correct one per name) required to access these. Do you know of a more elegant way?</p> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #fff"> 
                                <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> 
                                    <tr> 
                                        <td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0"> 
                                            <table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                                <tr> 
                                                    <td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HBX-849#add-comment" 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-7466511a-9f56-4840-9b7f-0d0f8d9dbe24" 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: 0px; 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/HBX-849#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> 
                                                    </td> 
                                                </tr> 
                                            </table> 
                                        </td> 
                                    </tr> 
                                </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: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
            <tr> 
                <td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px"> 
                    <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                        <tr> 
                            <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999; 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">(v6.3-OD-05-016#6325-<span title="052255dd9af96562f72347fc52f51555af33d252" data-commit-id="052255dd9af96562f72347fc52f51555af33d252}">sha1:052255d</span>)</span> 
                            </td> 
                            <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
                                <table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt"> 
                                    <tr> 
                                        <td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="cid:jira-generated-image-static-footer-desktop-logo-0b38495a-d6ec-4f85-89cd-edf80c58eba4" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" /> 
                                        </td> 
                                    </tr> 
                                </table> 
                            </td> 
                        </tr> 
                    </table> 
                </td> 
            </tr> 
        </table>   
    </body>
</html>