You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/11/03 23:41:36 UTC
[jira] [Commented] (OPENJPA-2534) A boolean is not converted
correct when using the hint 'UseLiteralInSQL'.
[ https://issues.apache.org/jira/browse/OPENJPA-2534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14195266#comment-14195266 ]
ASF subversion and git services commented on OPENJPA-2534:
----------------------------------------------------------
Commit 1636464 from [~jpaheath] in branch 'openjpa/branches/2.1.x'
[ https://svn.apache.org/r1636464 ]
OPENJPA-2534: A boolean is not converted correct when using the hint 'UseLiteralInSQL' - applied Rick's patch to 2.1.x.
> 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)