[richfaces-issues] [JBoss JIRA] Commented: (RF-9879) ILLEGAL SYMBOL "-" exception when filtering is used on a datatable component
Timmy Storms (JIRA)
jira-events at lists.jboss.org
Fri Dec 3 09:45:47 EST 2010
[ https://jira.jboss.org/browse/RF-9879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12567483#comment-12567483 ]
Timmy Storms commented on RF-9879:
----------------------------------
Well, for starters, this is what my JSF page looks like:
<rich:dataTable
id="myTable"
var="item"
value="#{bean.model}"
rows="#{bean.model.amountOfRows}"
first="#{bean.model.first}">
<rich:column filterEvent="onkeyup" filterBy="#{item.title}">
<f:facet name="header">
...
</f:facet>
<h:outputText value="#{item.title}" />
</rich:column>
</rich:dataTable>
This data table uses a data scroller component:
<rich:datascroller
for="myTable"
maxPages="7"
renderIfSinglePage="false"
ajaxSingle="false"
reRender="myTable"
page="#{bean.model.currentPage}"
scrollerListener="#{bean.model.scrollerListener}"
actionListener="#{bean.update}" />
The data model we're using is a subclass of org.ajax4jsf.model.SerializableDataModel. This class makes sure that only one "page" is queried for in our paginatable data model. A query is rendered as the one specified in the issue's description.
I thought I could fix the minus (or dash) sign problem by subclassing the org.hibernate.dialect.DB2Dialect.getLimitString(final String query, final int offset, final int limit) method. This way I could capture the limit value (see issue description) and change -1 value to another value. An implementation could look like this:
public final class DB2Dialect extends org.hibernate.dialect.DB2Dialect {
public String getLimitString(String query, int offset, int limit) {
if (limit <= 0) {
limit = 20;
}
return super.getLimitString(query, offset, limit);
}
}
Although the exception is gone now, the data table does not contain any data. When I remove the filterEvent and filterBy attributes from the data table column, the table renders as expected...
If you still need more specific information, please don't hesitate to ask me!
> ILLEGAL SYMBOL "-" exception when filtering is used on a datatable component
> ----------------------------------------------------------------------------
>
> Key: RF-9879
> URL: https://jira.jboss.org/browse/RF-9879
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-tables
> Affects Versions: 3.3.3.Final
> Environment: DB2 8
> Tomcat 6
> Spring 2.5.6
> Hibernate 3.3.2.GA
> Reporter: Timmy Storms
> Assignee: Nick Belaevski
>
> When I use filtering on a datatable, I'm getting the following exception when the page is rendered:" com.ibm.db2.jcc.b.SqlException: ILLEGAL SYMBOL "-". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: <IDENTIFIER>".
> It appears that this is caused by the -1 in the following sql statement:
> select
> a.b
> from
> mytable
> order by
> upper(column) asc fetch first -1 rows only
> We use DB2 as database. org.hibernate.dialect.DB2390Dialect is the hibernate dialect we use. I've tried the other DB2 ones to.
> I'm wondering if this issue is related to hibernate/db2 or that it originates from the datatable component.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list