You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
after upgrading from 2.3.1.to QueryDSL 3.1.1 (in 3.2.0 this also happens) I have type mismatch in query projection. Production code uses OracleTemplates and for a long value it returns BigDecimal in AbstractJPASQLQuery#getResultList, whereas in integration Junit tests that use HsqlDB the same column is mapped to BigInteger which results in error:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysema.query.types.ConstructorExpression.newInstance(ConstructorExpression.java:162)
I tried using the same template in JUnit tests (OracleTemplates instead of HSQLDBTemplates, but to no avail).
I also created custom HSQLDB template with overriden class2type (the same way as in OracleTemplates), but also to no avail.
Because writing integration tests using HSQLDB is so common, it would be good if one could override HSQLDB custom types with the ones used in production environment.
Additional note:
I'm using custom extension of QueryBase. It uses it's orderBy method. Then I'm using AbstractJPASQLQuery#list method. Generated SQL is +/- as follows:
select col1, col2, col3, ..
from T_FIELD field
join T_FIELD_LINK fieldLink
on field.FIELD_ID = fieldLink.FIELD_ID
where fieldLink.Rep_ID = ? and fieldLink.A_NUMBER is not null
order by fieldLink.A_NUMBER asc
Then in AbstractJPASQLQuery#getResultList(Query query) I see that in the query.getResultList() method everywhere where in production code BigDecimal is returned, in HSQLDB integration test I get BigInteger instead.
BR,
The text was updated successfully, but these errors were encountered:
Hi,
after upgrading from 2.3.1.to QueryDSL 3.1.1 (in 3.2.0 this also happens) I have type mismatch in query projection. Production code uses OracleTemplates and for a long value it returns BigDecimal in AbstractJPASQLQuery#getResultList, whereas in integration Junit tests that use HsqlDB the same column is mapped to BigInteger which results in error:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysema.query.types.ConstructorExpression.newInstance(ConstructorExpression.java:162)
I tried using the same template in JUnit tests (OracleTemplates instead of HSQLDBTemplates, but to no avail).
I also created custom HSQLDB template with overriden class2type (the same way as in OracleTemplates), but also to no avail.
Because writing integration tests using HSQLDB is so common, it would be good if one could override HSQLDB custom types with the ones used in production environment.
Additional note:
I'm using custom extension of QueryBase. It uses it's orderBy method. Then I'm using AbstractJPASQLQuery#list method. Generated SQL is +/- as follows:
select col1, col2, col3, ..
from T_FIELD field
join T_FIELD_LINK fieldLink
on field.FIELD_ID = fieldLink.FIELD_ID
where fieldLink.Rep_ID = ? and fieldLink.A_NUMBER is not null
order by fieldLink.A_NUMBER asc
Then in AbstractJPASQLQuery#getResultList(Query query) I see that in the query.getResultList() method everywhere where in production code BigDecimal is returned, in HSQLDB integration test I get BigInteger instead.
BR,
The text was updated successfully, but these errors were encountered: