Yea, I was wondering if this might be an angle of attack. Thanks, will try and see.
-Hal On Jan 7, 2014, at 7:31 PM, Rick Curtis <curti...@gmail.com> wrote: > It isn't clear to me what is going on, but with the DBDictionary you can > change the type of column that boolean / bit field types are mapped to. > Perhaps you can change the bitTypeName / booleanTypeName to see if you can > get something working? To change these values you can change the type to > set the property openjpa.jdbc.DBDictionary=postgres(bitTypeName="BIT"). > > HTH, > Rick > > > On Tue, Jan 7, 2014 at 7:38 PM, Hal Hildebrand <hal.hildebr...@me.com>wrote: > >> So, I have a serious problem. I have tables that are defined to have >> BOOLEAN columns. When I run this with PostgreSQL JDBC drivers, from the >> middle tier, this works just fine. Everything peachy keen. However…. >> >> I’m also running this code inside the database via PL/Java. When running >> inside the session as a stored procedure, a different JDBC driver is used - >> i.e. the one integrated into PL/Java. This JDBC driver works fine for the >> most part. But the problem is that when I try to set NULL to BOOLEAN >> columns, OpenJPA barfs: >> >> Caused by: <openjpa-2.2.2-r422266:1468616 fatal general error> >> org.apache.openjpa.persistence.PersistenceException: column "boolean_value" >> is of type boolean but expression is of type bit {prepstmnt 108675190 >> INSERT INTO ruleform.job_attribute (id, notes, update_date, binary_value, >> boolean_value, integer_value, numeric_value, sequence_number, >> text_value, timestamp_value, job, research, updated_by, attribute, >> unit) >> VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) >> [params=(long) 1, (null) null, (null) null, (null) null, (null) null, >> (null) null, (BigDecimal) 1500, (int) 1, (null) null, (null) null, (long) >> 55, (null) null, (long) 3, (long) 56, (null) null]} [code=0, state=42804] >> >> I have created a test case where I create a simple table with a BOOLEAN >> column and then use the raw JDBC driver to insert a NULL value into a row >> when running inside of PL/Java and it just works fine. >> >> So I’m guessing there’s some weird meta data thing going on. I did a lot >> of googling to see what I could find out, and basically it seems like >> there’s an issue with type 2 drivers vs type 3 drivers with PostgreSQL BIT >> and BOOLEAN. >> >> Thus, the question I have is there some setting in OpenJPA I can use to >> get around this? Things seem to turn nightmarish if I convert all my >> columns to BIT and try to deal with that. But hey, if there’s a SQL way >> out of this level of hell, I’ll gladly do that as well. >> >> Any help would be appreciated. >> >> -Hal > > > > > -- > *Rick Curtis*