Joined: Mon Feb 07, 2005 3:46 pm Posts: 5
|
I switched to using Hibernate 3 series code recently, but didn't notice this problem untill just today. I am constructing a fully native query, and doing the following code:
Code: q = session.createSQLQuery(queryString); q.addEntity("cat_result", CategorySearchResultImpl.class);
q.setInteger("region", getRegionMCA()); q.setInteger("system", getSystemMCA()); q.setInteger("mso", getMSOMCA()); q.setInteger("headend", getHeadendMCA()); q.setInteger("payload_id", getDataVersion()); q.setInteger("sub_category_id", getSubCategory()); q.setInteger("current_time", s_timeUtility.getCurrentGMTMinute(queryTime)); q.setInteger("start_time", s_timeUtility.getLowRangeGMTMinute(queryTime)); q.setInteger("end_time", s_timeUtility.getHighRangeGMTMinute(queryTime));
List myList = q.list();
The list comes back with the correct length for the result set, but all the items in the list are null and I just can NOT figure out why. The Mapping document is comprised of a single LARGE composite key which is read only and can not be persisted back to the database (due to the nature of the query being a multi-table join). Someone PLEASE help - I am confused and lost, it appears that I am doing what I need to, to execute this query (I don't get any exceptions or errors in the process) I just don't get the results - just the empty list of correct length. Thanks in advance. Joe Campbell Hibernate version:3.0.5/3.1 rc2 Mapping documents:
Code: <hibernate-mapping> <class name="com.gnet.gds.schema.category.impl.CategorySearchResultImpl" lazy="false">
<cache usage="read-only"/>
<composite-id> <key-property name="ProgramType" column="program_type" type="integer"/> <key-property name="programId" column="program_id" type="integer"/> <key-property name="title" column="program_title" type="string"/> <key-property name="TVRating" column="tv_rating" type="integer"/> <key-property name="MPAARating" column="mpaa_rating" type="integer"/> <key-property name="category" column="category" type="integer"/> <key-property name="sourceId" column="source_id" type="integer"/> <key-property name="startTime" column="start_time" type="integer"/> <key-property name="assetId" column="asset_id" type="string"/> <key-property name="providerId" column="provider_id" type="string"/> <key-property name="duration" column="duration" type="string"/> <key-property name="price" column="price" type="float"/> <key-property name="HDTV" column="hdtv_flag" type="boolean"/> <key-property name="newRelease" column="newrelease_flag" type="boolean"/> <key-property name="wideScreen" column="widescreen_flag" type="boolean"/> <key-property name="lastChance" column="lastchance_flag" type="boolean"/> <key-property name="dolby51" column="dolby_flag" type="boolean"/> <key-property name="closeCaption" column="closedcaption_flag" type="boolean"/> <key-property name="free" column="free_flag" type="boolean"/> <key-property name="SVOD" column="SVOD_flag" type="boolean"/>
</composite-id> </class> </hibernate-mapping>
Code between sessionFactory.openSession() and session.close():Full stack trace of any exception that occurs: There is no exception just some very strange behaviour.Name and version of the database you are using: Oracle 10gThe generated SQL (show_sql=true):
Code: WITH A as (SELECT 64 as record_type, min(p.program_id) as program_id, ps.long_title, p.tv_rating, p.mpaa_rating, p.category, min(sch.source_id) as source_id, sch.start_time, null, null, to_char(sch.duration) as duration, 0.00, 0, 0, 0, 0, 0, 0, 0, p.series_id FROM PROGRAM p, PROGRAM_STRING ps, PROGRAM_CATEGORY pc, SCHEDULE sch, SERVICE ser WHERE ((ser.hardware_address = 0) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?)) AND ser.payload_id = sch.payload_id AND ser.payload_id = pc.payload_id AND ser.source_id = sch.source_id AND ser.payload_id = ps.payload_id AND pc.payload_id = ? AND pc.subcategory_id = ? AND pc.payload_id = p.payload_id AND pc.program_id = sch.program_id AND p.program_id = sch.program_id AND p.program_id = ps.program_id AND p.event_type < 4 AND p.list_by_title > 0 AND sch.start_time >= ? AND sch.start_time <= ? AND ((sch.start_time + sch.duration) - ?) > 15 AND p.series_id > 0 GROUP BY ps.long_title, p.tv_rating, p.mpaa_rating, p.category, sch.duration, sch.start_time, p.series_id), B as (SELECT 64 as record_type, min(p.program_id) as program_id, ps.long_title, p.tv_rating, p.mpaa_rating, p.category, min(sch.source_id) as source_id, sch.start_time, null, null, to_char(sch.duration) as duration, 0.00, 0, 0, 0, 0, 0, 0, 0 FROM PROGRAM p, PROGRAM_STRING ps, PROGRAM_CATEGORY pc, SCHEDULE sch, SERVICE ser WHERE ((ser.hardware_address = 0) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?) OR (ser.hardware_address = ?)) AND ser.payload_id = sch.payload_id AND ser.payload_id = pc.payload_id AND ser.source_id = sch.source_id AND ser.payload_id = ps.payload_id AND pc.payload_id = ? AND pc.subcategory_id = ? AND pc.payload_id = p.payload_id AND pc.program_id = sch.program_id AND p.program_id = sch.program_id AND p.program_id = ps.program_id AND p.event_type < 4 AND p.list_by_title > 0 AND sch.start_time >= ? AND sch.start_time <= ? AND ((sch.start_time + sch.duration) - ?) > 15 AND p.series_id = 0 GROUP BY ps.long_title, p.tv_rating, p.mpaa_rating, p.category, sch.duration, sch.start_time) SELECT A.record_type as program1_4_0_, A.program_id as program2_4_0_, A.long_title as program3_4_0_, A.tv_rating as tv4_4_0_, A.mpaa_rating as mpaa5_4_0_, A.category as category4_0_, A.source_id as source7_4_0_, A.start_time as start8_4_0_, null as asset9_4_0_, null as provider10_4_0_, A.duration as duration4_0_, 0.00 as price4_0_, 0 as hdtv13_4_0_, 0 as newrelease14_4_0_, 0 as widescreen15_4_0_, 0 as lastchance16_4_0_, 0 as dolby17_4_0_, 0 as closedc18_4_0_, 0 as free19_4_0_, 0 as SVOD20_4_0_ FROM A WHERE (A.series_id, A.start_time) in ( SELECT A1.series_id, min(A1.start_time) FROM A A1 GROUP BY A1.series_id) UNION SELECT B.record_type as program1_4_0_, B.program_id as program2_4_0_, B.long_title as program3_4_0_, B.tv_rating as tv4_4_0_, B.mpaa_rating as mpaa5_4_0_, B.category as category4_0_, B.source_id as source7_4_0_, B.start_time as start8_4_0_, null as asset9_4_0_, null as provider10_4_0_, B.duration as duration4_0_, 0.00 as price4_0_, 0 as hdtv13_4_0_, 0 as newrelease14_4_0_, 0 as widescreen15_4_0_, 0 as lastchance16_4_0_, 0 as dolby17_4_0_, 0 as closedc18_4_0_, 0 as free19_4_0_, 0 as SVOD20_4_0_ FROM B WHERE (B.program_id, B.start_time) in ( SELECT B1.program_id, min(B1.start_time) FROM B B1 GROUP BY B1.program_id) UNION ALL SELECT 65 as program1_4_0_, 0 as program2_4_0_, vodtmd.title as program3_4_0_, vodtrm.value as tv4_4_0_, 0 as mpaa5_4_0_, CASE WHEN vodg.ITHEME_ID <= 99 THEN 0 WHEN vodg.ITHEME_ID between (100) AND (199) THEN 1 WHEN vodg.ITHEME_ID between (200) AND (299) THEN 2 WHEN vodg.ITHEME_ID between (300) AND (399) THEN 3 END as category4_0_, 0 as source7_4_0_, 0 as start8_4_0_, vodt.asset_id as asset9_4_0_, vodt.provider_id as provider10_4_0_, vodtmd.display_run_time as duration4_0_, vodtmd.price as price4_0_, CASE WHEN vodmmd.hd_content = 'Y' then 1 ELSE 0 END as hdtv13_4_0_, vodtmd.display_as_new as newrelease14_4_0_, CASE WHEN vodmmd.screen_format in ('Widescreen', 'Letterbox') then 1 ELSE 0 END as widescreen15_4_0_, vodtmd.display_as_last_chance as lastchance16_4_0_, CASE WHEN vodmpat.audio_type = ('Dolby Digital') then 1 ELSE 0 END as dolby17_4_0_, CASE WHEN vodtmd.closed_captioning is null then 0 ELSE 0 END as closedc18_4_0_, CASE WHEN vodtmd.free = 'Y' then 1 ELSE 0 END as free19_4_0_, CASE WHEN vodtmd.IS_SVOD = 'Y' then 1 ELSE 0 END as SVOD20_4_0_ FROM title vodt, title_app_md vodtmd, title_rating vodtr, title_rating_map vodtrm, VOD_ITHEME_FINAL vodg, movie_app_md vodmmd, movie_preview_audio_type vodmpat, asset voda WHERE vodtmd.TITLE_ID = vodt.ID AND vodtmd.adult = 'N' AND vodtmd.hidden = 'N' AND vodtr.TITLE_ID = vodt.ID AND vodg.TITLE_ID = vodt.ID AND vodg.ITHEME_ID = ? AND voda.title_id = vodt.ID AND vodmmd.movie_id = voda.ID AND vodmpat.movie_id = vodmmd.movie_id AND vodtr.rating = vodtrm.rating AND voda.asset_type_id = 3 ORDER BY program3_4_0_, program1_4_0_ desc, start8_4_0_
Debug level Hibernate log excerpt: N/A
|
|