Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: Problem mit setMaxResults()
PostPosted: Wed Nov 23, 2011 8:47 am 
Newbie

Joined: Wed Nov 23, 2011 8:33 am
Posts: 4
Hallo zusammen,

ich knoble seit heute morgen an einem Problem. Immer wenn ich bei meinem Programm eine Abfrage starte welche nur eine bestimmte Anzahl Datensäte zurückliefern soll bekomme ich die Fehlermeldung:
Quote:
Invalid object name 'web_overhead'

Dieser Fehler tritt nur dann auf wenn ich bei der Abfrage die Anzahl der zurückgegebenen Zeilen mit "setMaxResults()" limitiere, tue ich das nicht habe ich auch kein Problem.

Ich habe mir mal das generierte SQL ausgeben lassen und dabei folgendes festgestellt. Ich mappe meine Klassen mittels Annotations, dabei gebe ich jedem Bezeichner die Annotation "@column(name="SPALTENNAME")", also den Spaltennamen groß geschrieben.

setMaxResults() erzeugt scheinbar zwei Queries, einmal eine Query welche korrekt gemappt wird:
Code:
Hibernate: select this_.PERIOD_START as PERIOD1_6_0_, this_.AVG_OVERHEAD as AVG2_6_0_, this_.JOBS as JOBS6_0_, this_.MAX_OVERHEAD as MAX4_6_0_, this_.MEDIAN_OVERHEAD as MEDIAN5_6_0_, this_.MIN_OVERHEAD as MIN6_6_0_, this_.PERIOD_END as PERIOD7_6_0_, this_.SEC_1 as SEC8_6_0_, this_.SEC_10 as SEC9_6_0_, this_.SEC_120 as SEC10_6_0_, this_.SEC_2 as SEC11_6_0_, this_.SEC_3 as SEC12_6_0_, this_.SEC_30 as SEC13_6_0_, this_.SEC_4 as SEC14_6_0_, this_.SEC_5 as SEC15_6_0_, this_.SEC_6 as SEC16_6_0_, this_.SEC_60 as SEC17_6_0_, this_.SEC_7 as SEC18_6_0_, this_.SEC_8 as SEC19_6_0_, this_.SEC_9 as SEC20_6_0_, this_.SEC_90 as SEC21_6_0_, this_.SEC_GREATER_THAN_120 as SEC22_6_0_ from WEB_OVERHEAD this_ order by this_.PERIOD_START desc

Hier sieht man schön das alle Spaltennamen groß geschrieben sind, so wie es von der Datenbank auch verlangt wird und wie ich es in meinem Mapping vorgebe.
Jedoch erzeugt Hibernate eine zweite Query, welche die Ausgabe limitiert, diese sieht dann wie folgt aus:
Code:
Hibernate: WITH query AS (select ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__, this_.period_start as period1_6_0_, this_.avg_overhead as avg2_6_0_, this_.jobs as jobs6_0_, this_.max_overhead as max4_6_0_, this_.median_overhead as median5_6_0_, this_.min_overhead as min6_6_0_, this_.period_end as period7_6_0_, this_.sec_1 as sec8_6_0_, this_.sec_10 as sec9_6_0_, this_.sec_120 as sec10_6_0_, this_.sec_2 as sec11_6_0_, this_.sec_3 as sec12_6_0_, this_.sec_30 as sec13_6_0_, this_.sec_4 as sec14_6_0_, this_.sec_5 as sec15_6_0_, this_.sec_6 as sec16_6_0_, this_.sec_60 as sec17_6_0_, this_.sec_7 as sec18_6_0_, this_.sec_8 as sec19_6_0_, this_.sec_9 as sec20_6_0_, this_.sec_90 as sec21_6_0_, this_.sec_greater_than_120 as sec22_6_0_ from web_overhead this_) SELECT * FROM query WHERE __hibernate_row_nr__ BETWEEN ? AND ?

Hier kann man sehen das alle Spaltennamen klein geschrieben sind und das kann unsere DB nicht bewerkstelligen. Da das Produkt auf diversen Datenbanken, auch bei diversen Kunden laufen soll können wir nicht einfach an der DB rumschrauben, das wollen wir auch gar nicht. Es muss hierfür eine Lösung geben.

Hat jemand eine Idee??
Aktuell tritt das Problem auf bei einem MSSQL 2005 Express Server. Ich nutze Hibernate 3.6.5.Final

Danke und liebe Grüße,
Julian


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.