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

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

我正在尝试使用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=?
真的需要一些帮助来解决这个问题。

doinxwow

doinxwow1#

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

相关问题