我需要在JPA2中转换以下条件,但是发现没有替代方法可以应用没有JDBC参数的用SQL表示的约束
Restrictions.sqlRestriction(“ {alias} .col3&” + value +“ =” + value);
我尝试使用NativeQuery像下面的sinppet一样,其中value是传递给方法的参数:-
String sqlString="select * from myTable where col1=3600 and col2=true and col3&"+value+"="+value;
Query query=getSession().createNativeQuery(sqlString);
List<userDefClass> results = new ArrayList<userDefClass>();
results=(List<userDefClass>)query.getResultList();
对于上述逻辑,我得到以下错误:
“ java.lang.ClassCastException:[Ljava.lang.Object;无法转换为com.pkg.userDefClass java.lang.RuntimeException
query.getResultList()正在传递对象列表,但不传递userdefClass对象列表。
我也尝试使用类型查询,但是它抛出SQL Grammer Exception。我猜它没有解析SQL String中的按位'&'运算符。
请帮忙。
最佳答案
请尝试这个:
query.setResultTransformer(new AliasToBeanResultTransformer(userDefClass.class));