springboot之继承JpaRepository后自定义数据库操作后出现java.lang.ClassCastException的错误

java.lang.ClassCastException: * cannot be cast to *;

这是数据类型强制转化失败的问题。

在继承的Jpa的接口中,使用如下的查询方式:

springboot之继承JpaRepository后自定义数据库操作后出现java.lang.ClassCastException的错误_第1张图片

在Jpa的自带的方法中,删除操作的方法只有这几种:

springboot之继承JpaRepository后自定义数据库操作后出现java.lang.ClassCastException的错误_第2张图片

但是如果我要根据FileName来进行删除操作,一般是如上面的操作,添加方法deleteByFileName(String fileName);

使用该方法,你会发现会报ClassCastException的错误。

其实Jpa执行deleteByFileName()的原理是:先执行findByFileName(String FileName),找到对应的Id,在利用delete(Long id)来进行删除操作,所以此时就会出现String can not cast to long 的类型强制转化失败的错误。

其他的自定义操作原理也是一样的。

你可能感兴趣的:(spring-boot)