Hi,
I have this two joined-subclass in a
mapping file.
This two joined-subclass has one-to-many
relationship between them and is giving me a
problem, when I am trying to create a
inner join on the tables
And following is the Hibernate
query I want to generate
"from MultiplePersonalisedResponse as multiple
inner join multiple.singlePersonalisedResponse as
single" Following is the mapping file
:-
<?xml
version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping>
<class name="com.webify.eligibility.BenefitResponse.BenefitResponse" table="w_ce_benefitresponse"> <id name="id" column="id" length="36" type="string"> <generator class="com.webify.eligibility.db.util.Uuid"/> </id> <property name="benefitResponseType" column="benefit_response_type" type="character"/> <property name="rawContent" column="raw_content" type="binary" length="8000"/> <property name="userid" column="user_id" type="string" length="36"/> <property name="uploadDate" column="upload_date" type="date"/> <property name="status" column="status" type="string"/> <!-- Single Eligibility Response --> <joined-subclass name="com.webify.eligibility.BenefitResponse.SinglePersonalisedResponse" table="w_ce_single_personalised_response"> <key column="benefit_response_id"/> <component class="com.webify.eligibility.BenefitResponse.MemberInformation" name="memberInformation"> <property name="gender" column="gender" type="character"/> <property name="groupID" column="group_id" type="string"/> <property name="coverageStatus" column="coverage_status" type="string"/> <property name="serviceStartDate" column="service_start_date" type="date"/> <property name="serviceEndDate" column="service_end_date" type="date"/> <property name="coverageStartDate" column="coverage_start_date" type="date"/> <property name="coverageEndDate" column="coverage_end_date" type="date"/> <property name="coverageLevel" column="coverage_level" type="string"/> <property name="memberFirstName" column="member_first_name" type="string"/> <property name="memberLastName" column="member_last_name" type="string"/> <property name="identifier1" column="member_identifier1" type="string"/> <property name="identifier2" column="member_identifier2" type="string"/> <property name="dateOfBirth" column="member_dateOfBirth" type="date"/> <property name="payer" column="member_payer" type="string"/> <property name="relationship" column="member_relationship" type="character"/> </component> <component class="com.webify.eligibility.BenefitResponse.PrimaryCarePhysician" name="primaryCarePhysician"> <property name="name" column="name" type="string"/> <property name="pcdID" column="pcd_id" type="string"/> <property name="phoneNo" column="phone_no" type="string"/> <property name="email" column="email" type="string"/> <property name="address" column="address" type="string"/> </component> <property name="personalisedContent" column="personalised_content" type="binary" length="8000"/> <property name="creationDate" column="creation_date" type="date"/> <many-to-one class="com.webify.eligibility.BenefitResponse.MultiplePersonalisedResponse" name="multiplePersonalisedResponse" column="multiple_personalised_response_id"/> <bag name="responseBenefitInformations" cascade="all" inverse="true" lazy="true"> <key column="single_personalised_response_id"/> <one-to-many class="com.webify.eligibility.BenefitResponse.ResponseBenefitInformation"/> </bag> </joined-subclass> <!-- Single Eligibility Response --> <!-- Multiple Eligibility Response --> <joined-subclass name="com.webify.eligibility.BenefitResponse.MultiplePersonalisedResponse" table="w_ce_multiple_personalised_response"> <key column="benefit_response_id"/> <bag name="singlePersonalisedResponse" inverse="true" lazy="true" cascade="all"> <key column="multiple_personalised_response_id" /> <one-to-many class="com.webify.eligibility.BenefitResponse.SinglePersonalisedResponse" /> </bag> <property name="personalisedContent" column="personalised_content" type="binary" length="8000"/> <property name="creationDate" column="creation_date" type="date"/> </joined-subclass> <!-- Multiple Eligibility Response --> </class> </hibernate-mapping>
<!-- parsed in 0ms --> And following is the SQL query
been generated
select
multiple.id as id0_, sin0_.id as id1_, multiple_1.personalised_content as personal2_14_0_, multiple_1.creation_date as creation3_14_0_, multiple.benefit_response_type as benefit_2_12_0_, multiple.raw_content as raw_cont3_12_0_, multiple.user_id as user_id12_0_, multiple.upload_date as upload_d5_12_0_, multiple.status as status12_0_, sin0__1.gender as gender13_1_, sin0__1.group_id as group_id13_1_, sin0__1.coverage_status as coverage4_13_1_, sin0__1.service_start_date as service_5_13_1_, sin0__1.service_end_date as service_6_13_1_, sin0__1.coverage_start_date as coverage7_13_1_, sin0__1.coverage_end_date as coverage8_13_1_, sin0__1.coverage_level as coverage9_13_1_, sin0__1.member_first_name as member_10_13_1_, sin0__1.member_last_name as member_11_13_1_, sin0__1.member_identifier1 as member_12_13_1_, sin0__1.member_identifier2 as member_13_13_1_, sin0__1.member_dateOfBirth as member_14_13_1_, sin0__1.member_payer as member_15_13_1_, sin0__1.member_relationship as member_16_13_1_, sin0__1.name as name13_1_, sin0__1.pcd_id as pcd_id13_1_, sin0__1.phone_no as phone_no13_1_, sin0__1.email as email13_1_, sin0__1.address as address13_1_, sin0__1.personalised_content as persona22_13_1_, sin0__1.creation_date as creatio23_13_1_, sin0__1.multiple_personalised_response_id as multipl24_13_1_, sin0_.benefit_response_type as benefit_2_12_1_, sin0_.raw_content as raw_cont3_12_1_, --This is were the error is getting generated sin0_.user_id as user_id12_1_, --This is were the error is getting generated sin0_.upload_date as upload_d5_12_1_, --This is were the error is getting generated sin0_.status as status12_1_ --This is were the error is getting generated from w_ce_benefitresponse multiple inner join w_ce_multiple_personalised_response multiple_1 on multiple.id=multiple_1.benefit_response_id, w_ce_single_personalised_response sin0_ left outer join w_ce_single_personalised_response sin0__1 on sin0_.id=sin0__1.benefit_response_id where multiple.id=sin0_.multiple_personalised_response_id I get the error
- SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'id'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'id'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'benefit_response_type'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'raw_content'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'user_id'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'upload_date'. - SQL Error: 207, SQLState: 42S22 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid column name 'status'. - SQL Error: 16945, SQLState: HY000 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]The cursor was not declared. - Could not execute query The query getting generated is wrong. Am I doing something wrong in here or Is this the bug in hibernate. Coz I really facing the problem. regardsprasad chandrasekaran |
- [Hibernate] problem in using JTA datasources Prasad Iyer