例子:sprintboot环境中
public interface UserRepository extends CrudRepository<User,Long> {
@Modifying
@Query("update User set password=:psd where id=:id")
void updatePassword(@Param("id") Long id, @Param("psd") String password);
}
原因:
1. 表或字段没有映射。
解决:
- 在实际操作的类上(例子中是User),只写@Entity不行,要在下方添加映射表@Table(name = "tb_user")。
- 语句中出现的查询字段,在类中也都要出现。
2. HQL语句写法错误。
解决:注意语句里的User不能写成user或tb_user,名字必须为java类的类名。同理,字段也一样。