<!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: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt" bgcolor="#f5f5f5"> 
            <!-- header here --> 
            <tbody>
                <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"> 
                            <tbody>
                                <tr> 
                                    <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-d0106a54-eeb6-47b9-9cf3-0c8c45f0601f" 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="mtf90" id="email_mtf90" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=mtf90" style="color:#6c797f;; color: #3b73af; text-decoration: none">M F</a> <strong>updated</strong> an issue </td> 
                                </tr> 
                            </tbody>
                        </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"> 
                            <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: 0px; 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: 0px; 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: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="page-title-pattern-first-line " style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 10px"> <a href="https://hibernate.atlassian.net/browse/HHH" style="color: #3b73af; text-decoration: none">Hibernate ORM</a> / <a href="https://hibernate.atlassian.net/browse/HHH-10488" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-0a928ebb-e757-46cc-9d7d-8a8eff67283f" height="16" width="16" border="0" align="absmiddle" alt="Bug" style="vertical-align: text-bottom"></a> <a href="https://hibernate.atlassian.net/browse/HHH-10488" style="color: #3b73af; text-decoration: none">HHH-10488</a> </td> 
                                                </tr> 
                                                <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/HHH-10488" style="color: #3b73af; text-decoration: none">Exception when using the Treat-Operator with MapJoins</a> </span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  wrapper-special-margin" style="padding: 0px; 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: 0pt; mso-table-rspace: 0pt"> 
                                            <tbody>
                                                <tr> 
                                                    <th style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">Change By:</th> 
                                                    <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top"> <a class="user-hover" rel="mtf90" id="email_mtf90" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=mtf90" style="color:#6c797f;; color: #3b73af; text-decoration: none">M F</a> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand  issue-description-container" style="padding: 0px; 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: 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"> 
                                            <tbody>
                                                <tr> 
                                                    <td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> <span class="diffcontext">I&nbsp;am&nbsp;experiencing&nbsp;some&nbsp;buggy&nbsp;behaviour&nbsp;regarding&nbsp;the&nbsp;TREAT&nbsp;operator&nbsp;on&nbsp;MapJoins.&nbsp;In&nbsp;the&nbsp;following&nbsp;I&nbsp;will&nbsp;only&nbsp;sketch&nbsp;the&nbsp;scenario,&nbsp;for&nbsp;the&nbsp;full&nbsp;detail&nbsp;see&nbsp;the&nbsp;attached&nbsp;maven&nbsp;project.<br><br>I&nbsp;have&nbsp;an&nbsp;entity<br><br>{code:java}<br>class&nbsp;DBObject&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Map&lt;DBKey,&nbsp;DBValue&gt;&nbsp;properties;<br>}<br>{code}<br><br>that&nbsp;holds&nbsp;a&nbsp;mapping&nbsp;from&nbsp;keys&nbsp;(entities)&nbsp;to&nbsp;values&nbsp;(also&nbsp;entities).&nbsp;DBValue&nbsp;is&nbsp;an&nbsp;abstract&nbsp;super&nbsp;class&nbsp;for&nbsp;several&nbsp;subclasses&nbsp;that&nbsp;store&nbsp;a&nbsp;specific&nbsp;value,&nbsp;e.g.&nbsp;DBValueWithString&nbsp;or&nbsp;DBValueWithReference&nbsp;(which&nbsp;references&nbsp;other&nbsp;DBObjects).<br><br>I&nbsp;now&nbsp;want&nbsp;to&nbsp;query&nbsp;for&nbsp;objects,&nbsp;that&nbsp;own&nbsp;specific&nbsp;properties&nbsp;with&nbsp;certain&nbsp;values.&nbsp;Therefore&nbsp;I&nbsp;use&nbsp;the&nbsp;following&nbsp;CriteriaQuery:<br><br>{code:java}<br>final&nbsp;CriteriaBuilder&nbsp;builder&nbsp;=&nbsp;em.getCriteriaBuilder();<br>final&nbsp;CriteriaQuery&lt;DBObject&gt;&nbsp;query&nbsp;=&nbsp;builder.createQuery(DBObject.class);<br><br>final&nbsp;Root&lt;DBObject&gt;&nbsp;from&nbsp;=&nbsp;query.from(DBObject.class);<br>final&nbsp;MapJoin&lt;DBObject,&nbsp;DBKey,&nbsp;DBValue&gt;&nbsp;valueJoin&nbsp;=&nbsp;from.join(DBObject_.properties);<br><br>final&nbsp;MapJoin&lt;DBObject,&nbsp;DBKey,&nbsp;DBValueWithString&gt;&nbsp;stringJoin&nbsp;=&nbsp;builder.treat(valueJoin,&nbsp;DBValueWithString.class);<br>final&nbsp;Predicate&nbsp;predicate1&nbsp;=&nbsp;builder.and(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;builder.equal(stringJoin.get(DBValueWithString_.key),&nbsp;key1),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;builder.equal(stringJoin.get(DBValueWithString_.value),&nbsp;"test")<br>);<br>{code}<br><br>This&nbsp;query&nbsp;generates&nbsp;to&nbsp;reasonable&nbsp;JPQL:<br><br>{noformat}<br>select<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generatedAlias0<br>&nbsp;&nbsp;&nbsp;&nbsp;from<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBObject&nbsp;as&nbsp;generatedAlias0<br>&nbsp;&nbsp;&nbsp;&nbsp;inner&nbsp;join<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generatedAlias0.properties&nbsp;as&nbsp;generatedAlias1<br>&nbsp;&nbsp;&nbsp;&nbsp;where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treat(generatedAlias1&nbsp;as&nbsp;de.mtf.DBValueWithString).key=:param0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treat(generatedAlias1&nbsp;as&nbsp;de.mtf.DBValueWithString).value=:param1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>{noformat}<br><br>The&nbsp;corresponding&nbsp;SQL&nbsp;seems&nbsp;a&nbsp;little&nbsp;off,&nbsp;however&nbsp;it&nbsp;works:<br><br>{noformat}<br>select<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbobject0_.id&nbsp;as&nbsp;id1_1_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBObject&nbsp;dbobject0_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inner&nbsp;join<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBValue&nbsp;properties1_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;dbobject0_.id=properties1_.object_id<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inner&nbsp;join<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBValueWithString&nbsp;properties1_1_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;properties1_.id=properties1_1_.id<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;outer&nbsp;join<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBValueWithReference&nbsp;properties1_2_<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;properties1_.id=properties1_2_.id<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties1_.key_id=?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;properties1_1_.value=?<br>{noformat}<br><br>Note&nbsp;the&nbsp;unnecessary&nbsp;join&nbsp;with&nbsp;DBValueWithReference.&nbsp;According&nbsp;to&nbsp;the&nbsp;doc,&nbsp;the&nbsp;TREAT&nbsp;operator&nbsp;should&nbsp;also&nbsp;filter&nbsp;out&nbsp;the&nbsp;non&nbsp;matching&nbsp;subtypes,&nbsp;therefore&nbsp;entities&nbsp;of&nbsp;type&nbsp;DBValueWithReference&nbsp;can&nbsp;be&nbsp;completely&nbsp;ignored&nbsp;at&nbsp;this&nbsp;point.<br><br>The&nbsp;problem&nbsp;now&nbsp;arises,&nbsp;when&nbsp;querying&nbsp;for&nbsp;DBValueWithReferences.&nbsp;The&nbsp;JPQL&nbsp;query&nbsp;seems&nbsp;fine&nbsp;once&nbsp;again:<br><br>{noformat}<br>select<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generatedAlias0<br>&nbsp;&nbsp;&nbsp;&nbsp;from<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBObject&nbsp;as&nbsp;generatedAlias0<br>&nbsp;&nbsp;&nbsp;&nbsp;inner&nbsp;join<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generatedAlias0.properties&nbsp;as&nbsp;generatedAlias1<br>&nbsp;&nbsp;&nbsp;&nbsp;where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treat(generatedAlias1&nbsp;as&nbsp;de.mtf.DBValueWithReference).key=:param0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treat(generatedAlias1&nbsp;as&nbsp;de.mtf.DBValueWithReference).value=:param1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>{noformat}<br><br>However&nbsp;the&nbsp;translation&nbsp;process&nbsp;to&nbsp;SQL&nbsp;fails&nbsp;with&nbsp;the&nbsp;following&nbsp;error&nbsp;message:<br><br>{noformat}<br>java.lang.IllegalArgumentException:&nbsp;Parameter&nbsp;value&nbsp;[de.mtf.DBObject@7bf9b098]&nbsp;did&nbsp;not&nbsp;match&nbsp;expected&nbsp;type&nbsp;[java.lang.String&nbsp;(n/a)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryImpl.java:897)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.internal.QueryImpl.access$000(QueryImpl.java:61)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.internal.QueryImpl$ParameterRegistrationImpl.bindValue(QueryImpl.java:235)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:638)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:163)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:32)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.compile.CriteriaCompiler$1$1.bind(CriteriaCompiler.java:109)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.CriteriaQueryImpl$1.buildCompiledQuery(CriteriaQueryImpl.java:369)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.compile.CriteriaCompiler.compile(CriteriaCompiler.java:130)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:699)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;de.mtf.TreatTest.testTreat(TreatTest.java:98)<br>{noformat}<br><br>The&nbsp;problem&nbsp;seems&nbsp;to&nbsp;correlate&nbsp;with&nbsp;the&nbsp;unnecessary&nbsp;join,&nbsp;as&nbsp;the&nbsp;type&nbsp;seems&nbsp;to&nbsp;be&nbsp;inferred&nbsp;solely&nbsp;based&nbsp;on&nbsp;the&nbsp;first&nbsp;join&nbsp;(with&nbsp;DBValueWithString),&nbsp;which&nbsp;is&nbsp;unnecessarily&nbsp;part&nbsp;of&nbsp;the&nbsp;second&nbsp;query.<br><br>It&nbsp;seems,&nbsp;DBValue&nbsp;is&nbsp;joined&nbsp;with&nbsp;every&nbsp;sub&nbsp;class&nbsp;that&nbsp;is&nbsp;encountered&nbsp;in&nbsp;the&nbsp;persistence.xml.&nbsp;If&nbsp;you&nbsp;uncomment&nbsp;the&nbsp;@Entity&nbsp;annotation&nbsp;for&nbsp;DBValueWithBoolean,&nbsp;it&nbsp;will&nbsp;occur&nbsp;in&nbsp;the&nbsp;list&nbsp;of&nbsp;join&nbsp;statements.<br><br>Moreover,&nbsp;the&nbsp;order&nbsp;of&nbsp;the&nbsp;joins&nbsp;seems&nbsp;to&nbsp;depend&nbsp;on&nbsp;the&nbsp;order&nbsp;of&nbsp;which&nbsp;the&nbsp;classes&nbsp;are&nbsp;listed&nbsp;in&nbsp;the&nbsp;persistence.xml.&nbsp;If&nbsp;you&nbsp;swap&nbsp;the&nbsp;entries&nbsp;for&nbsp;DBValueWithString&nbsp;and&nbsp;DBValueWithReference,&nbsp;the&nbsp;second&nbsp;query&nbsp;executes&nbsp;just&nbsp;fine,&nbsp;whereas&nbsp;the&nbsp;first&nbsp;query&nbsp;now&nbsp;yields:<br><br>{noformat}<br>java.lang.IllegalArgumentException:&nbsp;Parameter&nbsp;value&nbsp;[test]&nbsp;did&nbsp;not&nbsp;match&nbsp;expected&nbsp;type&nbsp;[de.mtf.DBObject&nbsp;(n/a)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryImpl.java:897)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.internal.QueryImpl.access$000(QueryImpl.java:61)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.internal.QueryImpl$ParameterRegistrationImpl.bindValue(QueryImpl.java:235)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.BaseQueryImpl.setParameter(BaseQueryImpl.java:638)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:163)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:32)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.compile.CriteriaCompiler$1$1.bind(CriteriaCompiler.java:109)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.CriteriaQueryImpl$1.buildCompiledQuery(CriteriaQueryImpl.java:369)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.criteria.compile.CriteriaCompiler.compile(CriteriaCompiler.java:130)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:699)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;de.mtf.TreatTest.testTreat(TreatTest.java:96)<br>{noformat}<br><br>So&nbsp;is&nbsp;this&nbsp;just&nbsp;a&nbsp;misinterpretation&nbsp;of&nbsp;what&nbsp;the&nbsp;TREAT&nbsp;operator&nbsp;is&nbsp;supposed&nbsp;to&nbsp;do,&nbsp;or&nbsp;is&nbsp;it&nbsp;actually&nbsp;a&nbsp;bug&nbsp;in&nbsp;the&nbsp;SQL&nbsp;generation?<br><br>*</span> <span class="diffaddedchars" style="background-color:#ddfade;">**</span> <span class="diffcontext">EDIT*</span> <span class="diffaddedchars" style="background-color:#ddfade;">**</span> <span class="diffcontext"><br><br>To&nbsp;further&nbsp;elaborate&nbsp;on&nbsp;this&nbsp;issue,&nbsp;I&nbsp;tried</span> <span class="diffremovedchars" style="background-color: #ffe7e7; text-decoration:line-through;">&nbsp;</span> <span class="diffaddedchars" style="background-color:#ddfade;">&nbsp;to&nbsp;realize&nbsp;the&nbsp;same&nbsp;scenario&nbsp;using&nbsp;the&nbsp;EclipseLink&nbsp;JPA&nbsp;provider.&nbsp;Thereby&nbsp;I&nbsp;realized,&nbsp;the&nbsp;code&nbsp;given&nbsp;in&nbsp;the&nbsp;example&nbsp;may&nbsp;be&nbsp;a&nbsp;little&nbsp;unclean.&nbsp;For&nbsp;example,&nbsp;I&nbsp;used&nbsp;the&nbsp;same&nbsp;Join-object&nbsp;in&nbsp;several&nbsp;calls&nbsp;to&nbsp;the&nbsp;treat&nbsp;function.&nbsp;Apparently,&nbsp;this&nbsp;function&nbsp;may&nbsp;alter&nbsp;the&nbsp;Join-object,&nbsp;which&nbsp;may&nbsp;cause&nbsp;the&nbsp;query&nbsp;to&nbsp;fail.&nbsp;I&nbsp;added&nbsp;a&nbsp;new&nbsp;test&nbsp;project,&nbsp;which&nbsp;hopefully&nbsp;gets&nbsp;rid&nbsp;of&nbsp;all&nbsp;these&nbsp;flaws.<br><br>Ultimately,&nbsp;the&nbsp;new&nbsp;test-case&nbsp;allows&nbsp;a&nbsp;direct&nbsp;comparison&nbsp;of&nbsp;Hibernate&nbsp;and&nbsp;EclipseLink&nbsp;(via&nbsp;maven&nbsp;profiles)&nbsp;which&nbsp;shows,&nbsp;that&nbsp;the&nbsp;code&nbsp;executes&nbsp;as&nbsp;expected&nbsp;using&nbsp;EclipseLink&nbsp;but&nbsp;fails&nbsp;when&nbsp;using&nbsp;Hibernate.&nbsp;The&nbsp;main&nbsp;issue&nbsp;seems&nbsp;to&nbsp;be&nbsp;the&nbsp;same&nbsp;as&nbsp;mentioned&nbsp;above:&nbsp;When&nbsp;performing&nbsp;the&nbsp;TREAT&nbsp;operation,&nbsp;Hibernate&nbsp;wrongly&nbsp;joins&nbsp;on&nbsp;every&nbsp;subtype&nbsp;of&nbsp;the&nbsp;superclass.</span> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                                <tr> 
                                    <td class="email-content-main mobile-expand " style="padding: 0px; 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 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"> 
                                            <tbody>
                                                <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"> 
                                                            <tbody>
                                                                <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/HHH-10488#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-bf6299dc-c66f-41b7-81ce-51694df7cb84" 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/HHH-10488#add-comment" 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: 0px; 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: 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"> 
                            <tbody>
                                <tr> 
                                    <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; 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">(v7.1.0-OD-06-005#71002-<span title="1d15c989f1db2b53a95ce9e7066f4bb16c8773ac" data-commit-id="1d15c989f1db2b53a95ce9e7066f4bb16c8773ac}">sha1:1d15c98</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"> 
                                            <tbody>
                                                <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-e83bcde0-b7f1-4d16-8b93-87c2c6222486" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix"> </td> 
                                                </tr> 
                                            </tbody>
                                        </table> </td> 
                                </tr> 
                            </tbody>
                        </table> </td> 
                </tr> 
            </tbody>
        </table>   
    </body>
</html>