我正在尝试使用SpringData的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
Package 在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=?
真的需要一些帮助来解决这个问题。
1条答案
按热度按时间doinxwow1#
此问题是由定义为
char[]
而不是String
的实体类属性引起的。因此,Hibernate尝试将@Param("rev") String rev
转换为char[]
,但无法执行此操作。