我需要在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();
对于上述逻辑,我收到以下错误: -
&#34; java.lang.ClassCastException:[Ljava.lang.Object;无法转换为com.pkg.userDefClass java.lang.RuntimeException
query.getResultList()传递对象列表但不传递userdefClass对象列表。
另外我尝试使用Typed Query但它抛出了SQL Grammer异常。我猜它不会解析按位&#39;&amp;&#39; SQL字符串中的运算符。
请帮忙。
答案 0 :(得分:0)
请试试这个:
query.setResultTransformer(new AliasToBeanResultTransformer(userDefClass.class));