在JPA中定义了一些默认的接口,并且支持一些SQL语法中的关键字,如 AND、BETWEEN等,因此,如果自己写了一个findByUId(Integer id);的方法,并且配了一个@Query注解,就会引发一个非法参数和Dao层的对象初始化异常的问题。
解决的方式有两种:
1、避免自定义的方法与JPA支持的写法冲突,比如写 getById(Integer id);
2、去掉@Query注解,直接写一个 findById(int id);这个写法等同于执行 select * from [table] by id; 这样的SQL语句
其他还有 findByName 等同理。
findBy 语法参考: