我使用的標準與Hibernate的Session(未實體管理器),每當我用setMaxResult我得到異常如下:休眠setMaxResult導致異常
代碼段:
crit2.add(criterion).setFirstResult(first);
它可以完美如上,但每當我添加setmax結果爲:
crit2.add(criterion).setFirstResult(first).setMaxResults(max);
我得到異常。我試過2種方言,並得到2個不同的例外:
方言: org.hibernate.dialect.SQLServer2008Dialect
當:它永不放棄的結果,但總是給人低於
異常例外:產生的原因:COM .microsoft.sqlserver.jdbc.SQLServerException:「。」附近的語法錯誤。
方言: org.hibernate.dialect.SQLServerDialect並
當:它返回預期的第一頁,但每當我試圖讓第二個或更多的頁面,我得到
例外:產生的原因:COM。 microsoft.sqlserver.jdbc.SQLServerException:僅前向結果集不支持請求的操作。
順便說一句,我使用的Microsoft SQL Server 2008 R2
編輯:
,我意識到它是關於土耳其語 - 英語字符集的差異問題。使用Hibernate各個領域的下一封信,但我把它生成我但我sqlserver的lowerletter是I(如土耳其)
例如:sonIslemTarihi是屬性名稱和Hibernate創建查詢作爲sonislemtarihi並給出了錯誤,我改變了查詢爲sonıslemtarihi並從SQL Server管理工作室執行,並按預期工作。
我該如何處理?
您可以更改記錄器級別並檢查生成的查詢。 –
@NayanWadekar我爲你的信息添加了stacktraces,但是我不能給你sql查詢不透露項目的域模型(我的公司不允許我),但是肯定查詢特別是SQLServer2008Dialect受到了損壞。但我無法更改查詢,因爲我想使用條件。 – bdogru
無需實際查詢,您可以屏蔽機密數據並更新類似的數據。你也可以發佈第一和最大值。 –