spring-data-jpa 需要帮助:调用目标异常包绕“java.lang.ClassCastException:无法使用CrudRepository将java.lang.String转换为[C

klr1opcd  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(195)

我正在尝试使用SpringData的CrudRepsitory和Hibernate执行一个非常简单的查询。
回购:

  1. public interface LabelsAllRepository extends CrudRepository<LabelsAll, Integer>{
  2. @Query("select distinct(a.kundentext1) from LabelsAll a where a.zeichnungsnummer= :zchnr and a.revision = :rev")
  3. String findKtxt1ByZchnrAndRev(@Param("zchnr") String zchnr, @Param("rev") String rev);
  4. }

我尝试了很多不同的方法来调用这个函数,但是没有任何帮助。我总是把InvocationTargetException Package 在java.lang.ClassCastException: java.lang.String cannot be cast to [C周围。而且没有适当的堆栈跟踪,我想是因为我使用了反射吧?我真的不太确定。

  1. @Override
  2. public boolean isCounterForSet(String edvNb, String revision) {
  3. boolean ret = false;
  4. // This line is causing the exception to be thrown
  5. String labelsAll = labelsAllRepository.findKtxt1ByZchnrAndRev(edvNb, revision);
  6. if (!labelsAll.equals("")) {
  7. int snCount = snCounterRepository.countSnByKtxt1(labelsAll);
  8. ret = (snCount != 0);
  9. }
  10. return ret;
  11. }

查询似乎是正确的。[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=?
真的需要一些帮助来解决这个问题。

doinxwow

doinxwow1#

此问题是由定义为char[]而不是String的实体类属性引起的。因此,Hibernate尝试将@Param("rev") String rev转换为char[],但无法执行此操作。

相关问题