I am using Hibernate version 3.1.3. I have recently migrated from Classic to AST query translator. The database being used is Oracle 10g
The queries containing only one POJO are working fine but those based on multiple are giving the following exception
Code:
java.lang.ClassCastException: org.hibernate.hql.ast.tree.CollectionFunction
at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:720)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1215)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.inRhs(HqlSqlBaseWalker.java:4190)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3835)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1686)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at com.nubridges.persistence.NuSessionImpl.find(NuSessionImpl.java:155)
at com.nubridges.businesspartner.partnercontacts.manager.PartnerContactManagerImpl.getContacts(PartnerContactManagerImpl.java:176)
at com.nubridges.businesspartner.partnercontacts.manager.PartnerContactManagerImpl.getEmailInfos(PartnerContactManagerImpl.java:190)
at com.nubridges.service.businesspartner.BusinessPartnerServiceImpl.getEmailInfos(BusinessPartnerServiceImpl.java:293)
at com.nubridges.portlets.partnercontacts.taglib.DisplayEmails.getMarkup(DisplayEmails.java:94)
at com.nubridges.portlets.common.taglib.NuTag.doEndTag(NuTag.java:32)
at org.apache.jsp.partnercontacts.main_jsp._jspService(org.apache.jsp.partnercontacts.main_jsp:365)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.jsp.mycompany.includefile_jsp._jspService(org.apache.jsp.mycompany.includefile_jsp:123)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
at org.apache.jsp.mycompany.tabs_jsp._jspService(org.apache.jsp.mycompany.tabs_jsp:1198)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.struts.action.RequestProcessor.doInclude(RequestProcessor.java:1099)
at com.nubridges.portlets.common.PortletRequestProcessor.doForward(PortletRequestProcessor.java:25)
at com.nubridges.portlets.common.PortletRequestProcessor.processForwardConfig(PortletRequestProcessor.java:44)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:51)
at com.nubridges.portlets.common.NuGenericPortlet.secureDoView(NuGenericPortlet.java:180)
at com.nubridges.portlets.common.NuCustomPortlet.secureDoView(NuCustomPortlet.java:34)
at com.nubridges.portlets.mycompany.MyCompanyPortlet.secureDoView(MyCompanyPortlet.java:43)
at com.nubridges.portlets.common.NuGenericPortlet$1.run(NuGenericPortlet.java:72)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
at com.nubridges.portlets.common.NuGenericPortlet.doView(NuGenericPortlet.java:64)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:250)
at com.nubridges.portlets.common.NuGenericPortlet.secureDoDispatch(NuGenericPortlet.java:226)
at com.nubridges.portlets.common.NuGenericPortlet$2.run(NuGenericPortlet.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
at com.nubridges.portlets.common.NuGenericPortlet.doDispatch(NuGenericPortlet.java:191)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:178)
at com.nubridges.portlets.common.NuGenericPortlet.secureRender(NuGenericPortlet.java:408)
at com.nubridges.portlets.common.NuGenericPortlet$6.run(NuGenericPortlet.java:385)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
at com.nubridges.portlets.common.NuGenericPortlet.render(NuGenericPortlet.java:377)
at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:205)
at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.pluto.core.PortletServlet.service(PortletServlet.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
at org.apache.pluto.invoker.impl.PortletInvokerImpl.render(PortletInvokerImpl.java:73)
at org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:103)
at org.jasig.portal.channels.portlet.CPortletAdapter.getMarkup(CPortletAdapter.java:622)
at org.jasig.portal.channels.portlet.CPortletAdapter.renderXML(CPortletAdapter.java:545)
at org.jasig.portal.MultithreadedCharacterChannelAdapter.renderXML(MultithreadedCharacterChannelAdapter.java:38)
at org.jasig.portal.ChannelRenderer$Worker.execute(ChannelRenderer.java:598)
at org.jasig.portal.utils.threading.BaseTask.run(BaseTask.java:27)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:166)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExec
Here is the query that is giving error:
"select cm from ContactMechanism as cm, CompanyContactXref as companyContactXref where (cm.type.id = '1') and companyContactXref.company.id = '-1' and companyContactXref in (cm.companyContactXrefs.elements)"
I am getting this exception at
"Query quer= sess.createQuery(hql);"
Below are two cocerned hbm files
ContactMechanism
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="com.nubridges.persistence.company.ContactMechanism"
table="contact_mechanism"
dynamic-update="true"
dynamic-insert="true"
>
<cache usage="nonstrict-read-write" />
<id
name="id"
column="id"
type="java.lang.Long"
unsaved-value="0"
>
<generator class="sequence">
<param name="sequence">CONTACT_MECHANISM_ID_SEQ</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-ContactMechanism.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<set
name="companyContactXrefs"
lazy="false"
inverse="true"
cascade="all"
sort="unsorted"
>
<cache
usage="nonstrict-read-write"
/>
<key
column="contact_mechanism_id"
>
</key>
<one-to-many
class="com.nubridges.persistence.company.CompanyContactXref"
/>
</set>
<set
name="personsContactXrefs"
lazy="false"
inverse="true"
cascade="all"
sort="unsorted"
>
<cache
usage="nonstrict-read-write"
/>
<key
column="CNTACT_MECHANISM_ID"
>
</key>
<one-to-many
class="com.nubridges.persistence.company.PersonContactXref"
/>
</set>
<property
name="fromDate"
type="java.util.Calendar"
update="true"
insert="true"
column="from_date"
/>
<property
name="toDate"
type="java.util.Calendar"
update="true"
insert="true"
column="thru_date"
/>
<many-to-one
name="type"
class="com.nubridges.persistence.company.ContactMechanismType"
cascade="none"
outer-join="auto"
lazy="false"
update="true"
insert="true"
column="contact_mechanism_type_id"
/>
<property
name="order"
type="java.lang.Integer"
update="true"
insert="true"
column="order_int"
/>
<property
name="mechanismRoleText"
type="java.lang.String"
update="true"
insert="true"
column="mechanism_role_txt"
/>
<set
name="emailAddresses"
lazy="false"
inverse="true"
cascade="all"
sort="unsorted"
>
<cache
usage="nonstrict-read-write"
/>
<key
column="contact_xref_id"
>
</key>
<one-to-many
class="com.nubridges.persistence.company.EmailContactAddress"
/>
</set>
<set
name="postalAddresses"
inverse="true"
cascade="all"
sort="unsorted"
>
<key
column="contact_xref_id"
>
</key>
<one-to-many
class="com.nubridges.persistence.company.PostalContactAddress"
/>
</set>
<set
name="telephoneAddresses"
inverse="true"
cascade="all"
sort="unsorted"
>
<key
column="contact_xref_id"
>
</key>
<one-to-many
class="com.nubridges.persistence.company.TelContactAddress"
/>
</set>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-ContactMechanism.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>
CompanyContactXref
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="com.nubridges.persistence.company.CompanyContactXref"
table="company_contact_xref"
dynamic-update="true"
dynamic-insert="true"
>
<cache usage="nonstrict-read-write" />
<id
name="id"
column="id"
type="java.lang.Long"
unsaved-value="0"
>
<generator class="sequence">
<param name="sequence">COMPANY_CONTACT_XREF_ID_SEQ</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-CompanyContactXref.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<many-to-one
name="company"
class="com.nubridges.persistence.company.Company"
cascade="save-update"
outer-join="auto"
lazy="false"
update="true"
insert="true"
column="company_id"
/>
<many-to-one
name="contactMechanism"
class="com.nubridges.persistence.company.ContactMechanism"
cascade="save-update"
outer-join="auto"
lazy="false"
update="true"
insert="true"
column="contact_mechanism_id"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-CompanyContactXref.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>
Please help me if anybody can. This is really crucial[/code]