Hi Armin, > Oliver Seimel wrote: > > Hi, > > > > we migrated from ojb 1.0.1 to 1.0.4 > > DB is Postgres. But I think, that the "problem" is > independent of the > > DB. > > We use the type BIT(1) for boolean values, so a mapping looks like > > this: > > > > <field-descriptor > > name="emailNotice" > > column="emailnotice" > > jdbc-type="BIT" > > /> > > > > With version 1.0.1 the generated SQL was ... WHERE > emailnotice = '1' > > ..... > > > > With version 1.0.4 the generated SQL is ... WHERE > emailnotice = 'true' > > ..... > > > > Thats not good, because the statement fails. > > > > Does anybody know why ojb now maps the BIT types to BOOLEAN? > > OJB 1.0.4 and higher try to support the JDBC 3.0 > specification which specify to map BIT to boolean > http://db.apache.org/ojb/docu/guides/jdbc-types.html > Maybe this cause your problem. > Could you please post the query/criteria which produce the > SQL shown above.
Thanks for your response! here is an example: Criteria criteria = new Criteria(); criteria.addEqualTo("isCombination", new Boolean(true)); QueryByCriteria query = new QueryByCriteria(LicenseModule.class, criteria); licenses = broker.getCollectionByQuery(query); I changed it now to: criteria.addEqualTo("isCombination", new Integer(1)); p6spy log tells me that it is now correct: ...WHERE isCombination = '1' but I still get an exception: ...WHERE isCombination = ?' * Exception message is [ERROR: operator does not exist: bit = integer] This is strange at the first moment. I think OJB does everything right when I use new Integer instead of new Boolean (because of the p6spy log - and Postgres does accept the query of the log, if I use pgAdmin). The Postgres log says: LOG: statement: SELECT A0.licenseid,A0.class_name,A0.baselicenseid,A0.name,A0.iscombination FROM License A0 WHERE isCombination = $1 ERROR: operator does not exist: bit = integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. the message is clear, but as I said, at the moment I don't understand why Postgres does not accept the statement from ojb, but accepts it from pgadmin. (Probably it is the driver's fault?) So it seems it is not OJBs fault :) but I would be pleased if someone could give me a hint. Thanks Oliver --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]