我正在嘗試使用 Spring Data 的 CrudRepsitory 和 Hibernate 執行一個非常簡單的查詢。
回購:
public interface LabelsAllRepository extends CrudRepository<LabelsAll, Integer>{
@Query("select distinct(a.kundentext1) from LabelsAll a where a.zeichnungsnummer= :zchnr and a.revision = :rev")
String findKtxt1ByZchnrAndRev(@Param("zchnr") String zchnr, @Param("rev") String rev);
}
我嘗試了許多不同的方法來呼叫該函式,但沒有任何幫助。我總是被 InvocationTargetException纏住java.lang.ClassCastException: java.lang.String cannot be cast to [C。我認為也沒有適當的堆疊跟蹤,因為我正在使用反射?我真的不太確定。
@Override
public boolean isCounterForSet(String edvNb, String revision) {
boolean ret = false;
// This line is causing the exception to be thrown
String labelsAll = labelsAllRepository.findKtxt1ByZchnrAndRev(edvNb, revision);
if (!labelsAll.equals("")) {
int snCount = snCounterRepository.countSnByKtxt1(labelsAll);
ret = (snCount != 0);
}
return ret;
}
查詢似乎是正確的。[http-nio-8080-exec-1] DEBUG org.hibernate.SQL - select distinct labelsall0_.kundentext1 as col_0_0_ from ascom_etiketten_all labelsall0_ where labelsall0_.zeichnungsnummer=? and labelsall0_.revision=?
真的可以使用一些幫助來解決這個問題。
uj5u.com熱心網友回復:
該問題是由定義為char[]而不是String. 因此,Hibernate 嘗試強制@Param("rev") String rev轉換char[]它無法做到的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505306.html
