---
title: Known Issues and Limitations
order: 9
layout: page
---

[[sqlcontainer.limitations]]
= Known Issues and Limitations

At this point, there are still some known issues and limitations affecting the
use of SQLContainer in certain situations. The known issues and brief
explanations are listed below:

* Some SQL data types do not have write support when using TableQuery: ** All binary types
** All custom types
** CLOB (if not converted automatically to a [classname]#String# by the JDBC driver in use)
** See [classname]#com.vaadin.addon.sqlcontainer.query.generator.StatementHelper# for details.


* When using Oracle or MS SQL database, the column name " [parameter]#rownum#" can
not be used as a column name in a table connected to [classname]#SQLContainer#.

+
This limitation exists because the databases in question do not support
limit/offset clauses required for paging. Instead, a generated column named
'rownum' is used to implement paging support.


The permanent limitations are listed below. These can not or most probably will
not be fixed in future versions of SQLContainer.

* The [methodname]#getItemIds()# method is very inefficient - avoid calling it unless absolutely required!
* When using [classname]#FreeformQuery# without providing a [classname]#FreeformStatementDelegate#, the row count query is very inefficient - avoid using [classname]#FreeformQuery# without implementing at least the count query properly.
* When using [classname]#FreeformQuery# without providing a [classname]#FreeformStatementDelegate#, writing, sorting and filtering will not be supported.
* When using Oracle database most or all of the numeric types are converted to
[classname]#java.math.BigDecimal# by the Oracle JDBC Driver.

+
This is a feature of how Oracle DB and the Oracle JDBC Driver handles data
types.




