Bob MacCallum wrote:
> Hi all,
>
> The following works as expected:
>
> ItemQuery<ArrayDesign> affyQuery = ArrayDesign.getQuery();
> affyQuery.include(Include.SHARED);
> affyQuery.restrict(
> Restrictions.eq(Hql.property("affyChip"),
> Expressions.integer(1)
> )
> );
I think this may depend on the database that is used. I am sure it works
for MySQL since it uses a "bit"-column which can be either 0 or 1. I
don't know how Postgres handles it or if maybe Hibernate is smart enough
to fix any potential problems. I remember that our predefined queries
that filtered on boolean columns had to come in two versions, one for
MySQL and one for Postgres (see
http://base.thep.lu.se/browser/trunk/config/dist/mysql-queries.xml). I
think this has been fixed in Hibernate (or maybe in MySQL) some time
ago, since it now works with true/false values instead of 1/0.
Another possibility is to replace Expressions.integer(1) with
Expressions.parameter("isAffy", true, Type.BOOLEAN). This should be safe
with any database.
> but I'm a bit puzzled why there is no "Expressions.boolean(true)" in the API.
Well, a lot of things get added when they are needed. I guess the reason
is that we have not had any explicit need to filter on a boolean value
before.
> Not urgent!
Ok. Considering potential database issues, I think it maybe is better to
go for the Expresssion.parameter() in any case.
/Nicklas
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
basedb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/basedb-devel