Re: [DISCUSS] Any chance to release 3.2.2 anytime soon?

2022-03-15 Thread Jean-Baptiste Onofré
Hi

It sounds good to me. I don’t see any concern to have more releases when
required

Regards
JB

Le mer. 16 mars 2022 à 06:07, Francesco Chicchiriccò 
a écrit :

> Thanks Maxim.
>
> Anyone else?
>
> Regards.
>
> On 11/03/22 10:50, Maxim Solodovnik wrote:
> > +1 :)
> > Let it be more releases
> >
> > from mobile (sorry for typos ;)
> >
> >
> > On Fri, Mar 11, 2022, 16:03 Francesco Chicchiriccò 
> > wrote:
> >
> >> Hi all,
> >> I know 3.2.1 is quite fresh, but I've found a couple of small but
> >> important misses in the recently added support for Java 8 Date / Time
> API
> >> [1][2], while moving away Syncope from java.util.Date.
> >>
> >> Nevertheless to say, without these two fixes there is no way for Syncope
> >> to make things working, so I'd say we have two options there:
> >>
> >> 1. depend on OpenJPA 3.2.2-SNAPSHOT (as we're currently doing)
> >> 2. keep dependency to OpenJPA 3.2.1 but blind copy the fixed classes
> into
> >> Syncope source tree and remove them when 3.2.2 is out
> >>
> >> I largely prefer option (1) but this would imply that OpenJPA 3.2.2 is
> >> released in the short term, otherwise we have no option but (2).
> >>
> >> WDYT?
> >> Regards.
> >>
> >> [1]
> >>
> https://github.com/apache/openjpa/commit/f228d2c259f23fd17a328f719f2908cdc9ff6f52
> >> [2]
> >>
> https://github.com/apache/openjpa/commit/a605d872e5b4d929d1f4864eba3aa8aebcee35a7
>
> --
> Francesco Chicchiriccò
> Tel +393290573276
>
> Amministratore unico @ Tirasa S.r.l.
> Viale Vittoria Colonna 97 - 65127 Pescara
> Tel +39 0859116307 / FAX +39 085973
> http://www.tirasa.net
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
> "To Iterate is Human, to Recurse, Divine"
> (James O. Coplien, Bell Labs)
>
>


Re: [DISCUSS] Any chance to release 3.2.2 anytime soon?

2022-03-15 Thread Francesco Chicchiriccò

Thanks Maxim.

Anyone else?

Regards.

On 11/03/22 10:50, Maxim Solodovnik wrote:

+1 :)
Let it be more releases

from mobile (sorry for typos ;)


On Fri, Mar 11, 2022, 16:03 Francesco Chicchiriccò 
wrote:


Hi all,
I know 3.2.1 is quite fresh, but I've found a couple of small but
important misses in the recently added support for Java 8 Date / Time API
[1][2], while moving away Syncope from java.util.Date.

Nevertheless to say, without these two fixes there is no way for Syncope
to make things working, so I'd say we have two options there:

1. depend on OpenJPA 3.2.2-SNAPSHOT (as we're currently doing)
2. keep dependency to OpenJPA 3.2.1 but blind copy the fixed classes into
Syncope source tree and remove them when 3.2.2 is out

I largely prefer option (1) but this would imply that OpenJPA 3.2.2 is
released in the short term, otherwise we have no option but (2).

WDYT?
Regards.

[1]
https://github.com/apache/openjpa/commit/f228d2c259f23fd17a328f719f2908cdc9ff6f52
[2]
https://github.com/apache/openjpa/commit/a605d872e5b4d929d1f4864eba3aa8aebcee35a7


--
Francesco Chicchiriccò
Tel +393290573276

Amministratore unico @ Tirasa S.r.l.
Viale Vittoria Colonna 97 - 65127 Pescara
Tel +39 0859116307 / FAX +39 085973
http://www.tirasa.net

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/

"To Iterate is Human, to Recurse, Divine"
(James O. Coplien, Bell Labs)



[jira] [Commented] (OPENJPA-2788) Anonymous parameters are not being picked when adding via CriteriaBuilder

2022-03-15 Thread Will Dazey (Jira)


[ 
https://issues.apache.org/jira/browse/OPENJPA-2788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17507199#comment-17507199
 ] 

Will Dazey commented on OPENJPA-2788:
-

[~struberg] I can confirm this issue appears to be resolved in 3.2.1. Thank you 
for completing this!

> Anonymous parameters are not being picked when adding via CriteriaBuilder
> -
>
> Key: OPENJPA-2788
> URL: https://issues.apache.org/jira/browse/OPENJPA-2788
> Project: OpenJPA
>  Issue Type: Bug
>  Components: criteria
>Affects Versions: 3.1.0
>Reporter: Michael Wiles
>Assignee: Mark Struberg
>Priority: Critical
> Fix For: 3.2.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Something that is almost certainly introduced via fixes for OPENJPA-2785 and 
> OPENJPA-2733 is that anonymous parameters are not picked up.
> The following piece of code does not add the second parameter successfully 
> and thus the test fails.
> With a Member entity that has a place and a name field:
> {code:java}
>Member m = new Member(1, "dave");
> m.setAge(5);
> m.setPlace("capetown");
> em.persist(m);
> CriteriaBuilder cb = em.getCriteriaBuilder();
> CriteriaQuery q = cb.createQuery(Member.class);
> Root c = q.from(Member.class);
> ParameterExpression name = cb.parameter(String.class);
> ParameterExpression place = cb.parameter(String.class);
> CriteriaQuery where = 
> q.select(c).where(cb.equal(c.get("name"), name), cb.equal(c.get("place"), 
> place));
> TypedQuery query = em.createQuery(where);
> query.setParameter(name, "dave");
> query.setParameter(place, "capetown");
> List results = query.getResultList();
> assertThat(results).isNotEmpty();
> {code}
> With query and parameter logging on you that the the sql call is made with 
> the same parameter twice...
> {noformat}
>  executing prepstmnt 2078396010 SELECT t0.id, 
> t0.age, t0.name, t0.place FROM Member t0 WHERE (t0.name = ? AND t0.place = ?) 
> [params=(String) dave, (String) dave]
> {noformat}
> And this kinda makes sense as this is what the 
> CriteriaQueryImpl.registerParameter looks like:
> {code:java}
> /**
>  * Registers the given parameter.
>  */
> void registerParameter(ParameterExpressionImpl p) {
> for (Object k : _params.keySet()) {
> if (p.paramEquals(k)) {
> // If a named ParameterExpressin did already get registered
> // with that exact name, then we do ignore it.
> // If we do a query.setParameter("someParamName", Bla)
> // then it must uniquely identify a Parameter.
> return;
> }
> }
> p.setIndex(_params.size());
> _params.put(p, p.getJavaType());
> }
> {code}
> And 
> [paramEquals|https://github.com/apache/openjpa/blob/9f26ed29bf31b5c8ab68c5257d42e8c88765cf9b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java#L142]
>  will not differentiate between two anonymous parameters.
> So I suspect we are going to need some mechanism for differentiating between 
> two anonymous parameters - and if we did this then I suspect the issue that 
> caused this in the first place might also be resolved. Possibly add some kind 
> of counter or something that can give identity to anonymous parameters.
>  Added test to [https://github.com/michaelwiles/openjpa-bugs]



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Comment Edited] (OPENJPA-2901) Regression in CriteriaBuilder ParameterExpression behavior

2022-03-15 Thread Will Dazey (Jira)


[ 
https://issues.apache.org/jira/browse/OPENJPA-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17507196#comment-17507196
 ] 

Will Dazey edited comment on OPENJPA-2901 at 3/15/22, 7:56 PM:
---

It seems this may be a duplicate of 
https://issues.apache.org/jira/browse/OPENJPA-2788. If so, please close this 
issue as such. Thanks you.


was (Author: dazeydev):
It seems this may be a duplicate of 
https://issues.apache.org/jira/browse/OPENJPA-2788

> Regression in CriteriaBuilder ParameterExpression behavior
> --
>
> Key: OPENJPA-2901
> URL: https://issues.apache.org/jira/browse/OPENJPA-2901
> Project: OpenJPA
>  Issue Type: Bug
>Affects Versions: 3.0.0, 3.1.2
>Reporter: Will Dazey
>Priority: Minor
>
> I was testing OpenJPA for CriteriaBuilder and I noticed a regression in 
> behavior when setting ParameterExpressions
> Entity:
> ```
> @Entity
> public class SimpleEntity {
> @Id @Column(name = "KEY_CHAR")
> private String KeyString;
> @Column(name = "ITEM_STRING1")
> private String itemString1;
> @Column(name = "ITEM_STRING2")
> private String itemString2;
> @Column(name = "ITEM_STRING3")
> private String itemString3;
> @Column(name = "ITEM_STRING4")
> private String itemString4;
> @Column(name = "ITEM_INTEGER1")
> private Integer itemInteger1;
> ```
> Test:
> ```
> CriteriaBuilder cb = em.getCriteriaBuilder();
> CriteriaQuery cquery = cb.createQuery(SimpleEntity.class);
> Root root = cquery.from(SimpleEntity.class);
> cquery.select(root);
> ParameterExpression strValue1 = cb.parameter(String.class);
> ParameterExpression strValue2 = cb.parameter(String.class);
> ParameterExpression strValue3 = cb.parameter(String.class);
> ParameterExpression strValue4 = cb.parameter(String.class);
> cquery.where(root.get(SimpleEntity_.itemString1).in(strValue1, strValue2, 
> strValue3, strValue4));
> query = em.createQuery(cquery);
> query.setParameter(strValue1, "HELLO");
> query.setParameter(strValue2, "ONE");
> query.setParameter(strValue3, "WORLD");
> query.setParameter(strValue4, "PEOPLE");
> ```
> 3.0.0 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1876167186 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) ONE, (String) WORLD, (String) PEOPLE]
> ```
> 3.1.2 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1987058658 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) HELLO, (String) HELLO, (String) HELLO]
> ```
> I have not tested against the latest 3.2.1 binary yet, so I don't know if 
> this was fixed in the latest 3.2.x, but the latest 3.1.x does contain this 
> issue. I will test 3.2.x next.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (OPENJPA-2901) Regression in CriteriaBuilder ParameterExpression behavior

2022-03-15 Thread Will Dazey (Jira)


[ 
https://issues.apache.org/jira/browse/OPENJPA-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17507196#comment-17507196
 ] 

Will Dazey commented on OPENJPA-2901:
-

It seems this may be a duplicate of 
https://issues.apache.org/jira/browse/OPENJPA-2788

> Regression in CriteriaBuilder ParameterExpression behavior
> --
>
> Key: OPENJPA-2901
> URL: https://issues.apache.org/jira/browse/OPENJPA-2901
> Project: OpenJPA
>  Issue Type: Bug
>Affects Versions: 3.0.0, 3.1.2
>Reporter: Will Dazey
>Priority: Minor
>
> I was testing OpenJPA for CriteriaBuilder and I noticed a regression in 
> behavior when setting ParameterExpressions
> Entity:
> ```
> @Entity
> public class SimpleEntity {
> @Id @Column(name = "KEY_CHAR")
> private String KeyString;
> @Column(name = "ITEM_STRING1")
> private String itemString1;
> @Column(name = "ITEM_STRING2")
> private String itemString2;
> @Column(name = "ITEM_STRING3")
> private String itemString3;
> @Column(name = "ITEM_STRING4")
> private String itemString4;
> @Column(name = "ITEM_INTEGER1")
> private Integer itemInteger1;
> ```
> Test:
> ```
> CriteriaBuilder cb = em.getCriteriaBuilder();
> CriteriaQuery cquery = cb.createQuery(SimpleEntity.class);
> Root root = cquery.from(SimpleEntity.class);
> cquery.select(root);
> ParameterExpression strValue1 = cb.parameter(String.class);
> ParameterExpression strValue2 = cb.parameter(String.class);
> ParameterExpression strValue3 = cb.parameter(String.class);
> ParameterExpression strValue4 = cb.parameter(String.class);
> cquery.where(root.get(SimpleEntity_.itemString1).in(strValue1, strValue2, 
> strValue3, strValue4));
> query = em.createQuery(cquery);
> query.setParameter(strValue1, "HELLO");
> query.setParameter(strValue2, "ONE");
> query.setParameter(strValue3, "WORLD");
> query.setParameter(strValue4, "PEOPLE");
> ```
> 3.0.0 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1876167186 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) ONE, (String) WORLD, (String) PEOPLE]
> ```
> 3.1.2 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1987058658 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) HELLO, (String) HELLO, (String) HELLO]
> ```
> I have not tested against the latest 3.2.1 binary yet, so I don't know if 
> this was fixed in the latest 3.2.x, but the latest 3.1.x does contain this 
> issue. I will test 3.2.x next.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (OPENJPA-2901) Regression in CriteriaBuilder ParameterExpression behavior

2022-03-15 Thread Romain Manni-Bucau (Jira)


[ 
https://issues.apache.org/jira/browse/OPENJPA-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17507195#comment-17507195
 ] 

Romain Manni-Bucau commented on OPENJPA-2901:
-

Hi [~dazeydev] , great to hear about it! There is no plan for a 3.1.x AFAIK - 
no blocker too to do one but 3.2.x should be a transparent replacement.

> Regression in CriteriaBuilder ParameterExpression behavior
> --
>
> Key: OPENJPA-2901
> URL: https://issues.apache.org/jira/browse/OPENJPA-2901
> Project: OpenJPA
>  Issue Type: Bug
>Affects Versions: 3.0.0, 3.1.2
>Reporter: Will Dazey
>Priority: Minor
>
> I was testing OpenJPA for CriteriaBuilder and I noticed a regression in 
> behavior when setting ParameterExpressions
> Entity:
> ```
> @Entity
> public class SimpleEntity {
> @Id @Column(name = "KEY_CHAR")
> private String KeyString;
> @Column(name = "ITEM_STRING1")
> private String itemString1;
> @Column(name = "ITEM_STRING2")
> private String itemString2;
> @Column(name = "ITEM_STRING3")
> private String itemString3;
> @Column(name = "ITEM_STRING4")
> private String itemString4;
> @Column(name = "ITEM_INTEGER1")
> private Integer itemInteger1;
> ```
> Test:
> ```
> CriteriaBuilder cb = em.getCriteriaBuilder();
> CriteriaQuery cquery = cb.createQuery(SimpleEntity.class);
> Root root = cquery.from(SimpleEntity.class);
> cquery.select(root);
> ParameterExpression strValue1 = cb.parameter(String.class);
> ParameterExpression strValue2 = cb.parameter(String.class);
> ParameterExpression strValue3 = cb.parameter(String.class);
> ParameterExpression strValue4 = cb.parameter(String.class);
> cquery.where(root.get(SimpleEntity_.itemString1).in(strValue1, strValue2, 
> strValue3, strValue4));
> query = em.createQuery(cquery);
> query.setParameter(strValue1, "HELLO");
> query.setParameter(strValue2, "ONE");
> query.setParameter(strValue3, "WORLD");
> query.setParameter(strValue4, "PEOPLE");
> ```
> 3.0.0 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1876167186 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) ONE, (String) WORLD, (String) PEOPLE]
> ```
> 3.1.2 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1987058658 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) HELLO, (String) HELLO, (String) HELLO]
> ```
> I have not tested against the latest 3.2.1 binary yet, so I don't know if 
> this was fixed in the latest 3.2.x, but the latest 3.1.x does contain this 
> issue. I will test 3.2.x next.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Commented] (OPENJPA-2901) Regression in CriteriaBuilder ParameterExpression behavior

2022-03-15 Thread Will Dazey (Jira)


[ 
https://issues.apache.org/jira/browse/OPENJPA-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17507194#comment-17507194
 ] 

Will Dazey commented on OPENJPA-2901:
-

Ok, finished testing with OpenJPA 3.2.1 and it seems that this issue has been 
resolved in that version. Is there a plan to backport into a release for 
OpenJPA 3.1.3? or is 3.1.x replaced by 3.2.x?

> Regression in CriteriaBuilder ParameterExpression behavior
> --
>
> Key: OPENJPA-2901
> URL: https://issues.apache.org/jira/browse/OPENJPA-2901
> Project: OpenJPA
>  Issue Type: Bug
>Affects Versions: 3.0.0, 3.1.2
>Reporter: Will Dazey
>Priority: Minor
>
> I was testing OpenJPA for CriteriaBuilder and I noticed a regression in 
> behavior when setting ParameterExpressions
> Entity:
> ```
> @Entity
> public class SimpleEntity {
> @Id @Column(name = "KEY_CHAR")
> private String KeyString;
> @Column(name = "ITEM_STRING1")
> private String itemString1;
> @Column(name = "ITEM_STRING2")
> private String itemString2;
> @Column(name = "ITEM_STRING3")
> private String itemString3;
> @Column(name = "ITEM_STRING4")
> private String itemString4;
> @Column(name = "ITEM_INTEGER1")
> private Integer itemInteger1;
> ```
> Test:
> ```
> CriteriaBuilder cb = em.getCriteriaBuilder();
> CriteriaQuery cquery = cb.createQuery(SimpleEntity.class);
> Root root = cquery.from(SimpleEntity.class);
> cquery.select(root);
> ParameterExpression strValue1 = cb.parameter(String.class);
> ParameterExpression strValue2 = cb.parameter(String.class);
> ParameterExpression strValue3 = cb.parameter(String.class);
> ParameterExpression strValue4 = cb.parameter(String.class);
> cquery.where(root.get(SimpleEntity_.itemString1).in(strValue1, strValue2, 
> strValue3, strValue4));
> query = em.createQuery(cquery);
> query.setParameter(strValue1, "HELLO");
> query.setParameter(strValue2, "ONE");
> query.setParameter(strValue3, "WORLD");
> query.setParameter(strValue4, "PEOPLE");
> ```
> 3.0.0 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1876167186 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) ONE, (String) WORLD, (String) PEOPLE]
> ```
> 3.1.2 SQL Trace:
> ```
> openjpa.jdbc.SQL -  executing prepstmnt 
> 1987058658 
> SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
> t0.ITEM_STRING3, t0.ITEM_STRING4 
> FROM SimpleEntity t0 
> WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
> ? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
> [params=(String) HELLO, (String) HELLO, (String) HELLO, (String) HELLO]
> ```
> I have not tested against the latest 3.2.1 binary yet, so I don't know if 
> this was fixed in the latest 3.2.x, but the latest 3.1.x does contain this 
> issue. I will test 3.2.x next.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (OPENJPA-2901) Regression in CriteriaBuilder ParameterExpression behavior

2022-03-15 Thread Will Dazey (Jira)
Will Dazey created OPENJPA-2901:
---

 Summary: Regression in CriteriaBuilder ParameterExpression behavior
 Key: OPENJPA-2901
 URL: https://issues.apache.org/jira/browse/OPENJPA-2901
 Project: OpenJPA
  Issue Type: Bug
Affects Versions: 3.1.2, 3.0.0
Reporter: Will Dazey


I was testing OpenJPA for CriteriaBuilder and I noticed a regression in 
behavior when setting ParameterExpressions

Entity:
```
@Entity
public class SimpleEntity {

@Id @Column(name = "KEY_CHAR")
private String KeyString;

@Column(name = "ITEM_STRING1")
private String itemString1;

@Column(name = "ITEM_STRING2")
private String itemString2;

@Column(name = "ITEM_STRING3")
private String itemString3;

@Column(name = "ITEM_STRING4")
private String itemString4;

@Column(name = "ITEM_INTEGER1")
private Integer itemInteger1;
```

Test:
```
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cquery = cb.createQuery(SimpleEntity.class);
Root root = cquery.from(SimpleEntity.class);
cquery.select(root);

ParameterExpression strValue1 = cb.parameter(String.class);
ParameterExpression strValue2 = cb.parameter(String.class);
ParameterExpression strValue3 = cb.parameter(String.class);
ParameterExpression strValue4 = cb.parameter(String.class);
cquery.where(root.get(SimpleEntity_.itemString1).in(strValue1, strValue2, 
strValue3, strValue4));

query = em.createQuery(cquery);
query.setParameter(strValue1, "HELLO");
query.setParameter(strValue2, "ONE");
query.setParameter(strValue3, "WORLD");
query.setParameter(strValue4, "PEOPLE");
```

3.0.0 SQL Trace:
```
openjpa.jdbc.SQL -  executing prepstmnt 
1876167186 
SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
t0.ITEM_STRING3, t0.ITEM_STRING4 
FROM SimpleEntity t0 
WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
[params=(String) HELLO, (String) ONE, (String) WORLD, (String) PEOPLE]
```

3.1.2 SQL Trace:
```
openjpa.jdbc.SQL -  executing prepstmnt 1987058658 
SELECT t0.KEY_CHAR, t0.ITEM_INTEGER1, t0.ITEM_STRING1, t0.ITEM_STRING2, 
t0.ITEM_STRING3, t0.ITEM_STRING4 
FROM SimpleEntity t0 
WHERE ((t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = ? OR t0.ITEM_STRING1 = 
? OR t0.ITEM_STRING1 = ?) AND t0.ITEM_STRING1 IS NOT NULL) 
[params=(String) HELLO, (String) HELLO, (String) HELLO, (String) HELLO]
```

I have not tested against the latest 3.2.1 binary yet, so I don't know if this 
was fixed in the latest 3.2.x, but the latest 3.1.x does contain this issue. I 
will test 3.2.x next.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)