[ https://issues.apache.org/jira/browse/OPENJPA-2534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14195389#comment-14195389 ]
ASF subversion and git services commented on OPENJPA-2534: ---------------------------------------------------------- Commit 1636474 from [~jpaheath] in branch 'openjpa/trunk' [ https://svn.apache.org/r1636474 ] OPENJPA-2534: A boolean is not converted correct when using the hint 'UseLiteralInSQL' - applied Rick's patch to trunk. > A boolean is not converted correct when using the hint 'UseLiteralInSQL'. > ------------------------------------------------------------------------- > > Key: OPENJPA-2534 > URL: https://issues.apache.org/jira/browse/OPENJPA-2534 > Project: OpenJPA > Issue Type: Bug > Components: sql > Affects Versions: 2.1.2, 2.2.1.1, 2.2.3, 2.3.1, 2.4.0 > Reporter: Heath Thomann > Assignee: Rick Curtis > Priority: Critical > Attachments: OPENJPA-2534.patch > > > The hint, 'openjpa.hint.UseLiteralInSQL', is not properly converting a > boolean to an int. To illustrate this, lets take this entity: > public class MyEntity implements Serializable { > @Id > private Integer pk; > private boolean flag; > .......... > With this entity, lets take this test: > Query q = em.createQuery("SELECT f FROM MyEntity f WHERE f.flag = true"); > q.setHint("openjpa.hint.UseLiteralInSQL", "false"); //false is the default > q.getResultList(); > With this code, the following SQL will be generated: > SELECT t0.pk, t0.code, t0.code2, t0.flag FROM MyEntity t0 WHERE (t0.flag = ?) > [params=(int) 1] > Next, lets take this code: > Query q = em.createQuery("SELECT f FROM MyEntity f WHERE f.flag = true"); > q.setHint("openjpa.hint.UseLiteralInSQL", "true"); > q.getResultList(); > With this code, the following SQL will be generated: > SELECT t0.pk, t0.code, t0.code2, t0.flag FROM MyEntity t0 WHERE (t0.flag = > true) > However, in the latter case where UseLiteralInSQL=true, the following SQL > should be generated: > SELECT t0.pk, t0.code, t0.code2, t0.flag FROM MyEntity t0 WHERE (t0.flag = > '1') > Thanks, > Heath -- This message was sent by Atlassian JIRA (v6.3.4#6332)