[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-3344) DB2Dialect.getLimitString doesn't work for some queries
Strong Liu (JIRA)
noreply at atlassian.com
Tue Jun 7 05:55:27 EDT 2011
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Strong Liu resolved HHH-3344.
-----------------------------
Resolution: Fixed
Fix Version/s: 4.0.0.Beta1
fixed by HHH-2176
> DB2Dialect.getLimitString doesn't work for some queries
> -------------------------------------------------------
>
> Key: HHH-3344
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3344
> Project: Hibernate Core
> Issue Type: Bug
> Reporter: Damon Horrell
> Assignee: Strong Liu
> Priority: Minor
> Fix For: 4.0.0.Beta1
>
>
> If a query uses * but doesn't use a table alias then the modified query created by DB2Dialect.getLimitString is invalid.
> e.g.
> select * from mytable
> becomes
> select * from ( select rownumber() over() as rownumber_, * from mytable ) as temp_ where rownumber_ <= ?
> which causes
> DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: *;ver() as rownumber_,;<select_sublist>
> I have worked around this for my project by extending DB2Dialect with:
> public String getLimitString(String sql, boolean hasOffset) {
> return "select * from ( select rownumber() over() as rownumber_, original_query.* from (" + sql
> + ") original_query ) as temp_ where rownumber_ <= ?";
> }
> This code will need extending to handle the hasOffset case etc.
> Real code probably won't be using select * anyway so this probably isn't a big problem. My example allows the user to enter a custom query so I have to handle this situation.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list