报错:Disconnected from the target VM

报错:Disconnected from the target VM

Disconnected from the target VM, address: '127.0.0.1:63165', transport: 'socket'

注:网上很多文章各种解决方案,千万别跟着尝试。遇到这个报错的话,原因很可能是因为后台代码写错了,先检查后台代码。




第一次原因:

userManagementServiceImpl中无法注入底层写好的baseRepository:

解决方案一:
在UserManagementServiceImpl业务层实现类中:
需要重写BaseRepository
@Override

@Autowired

public void setBaseRepository(BaseRepository<User, Long> baseRepository) {

    super.setBaseRepository(baseRepository);

}
解决方案二:
修改IDEA软件设置的,将安全等级修改为wanrning,报错也会消失,具体原因需要再了解。




 

第二次原因: jpql语句语法有误

在dao接口中:
/** 用于检查账号是否已存在,根据账号名查数据 */

@Query("select u from User u where u.account = :account ")

User findByAccount(@Param("account") String account);


 

jpql简介

JPQL是JPA的规范里面的东西。
DML就是insert update delete这些操作语句。

JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。

JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询

 
注:在JPA中没有Delete这个注解,尝试使用Modifing可以这样:
Modifing的用法:
(要用原生SQL的话,就用NameNativeQuery)

@Transactional

@Modifying

@Query("delete from User u where u.id = :id ")

void deleteUser(@Param("id") Long id);

猜你喜欢

转载自blog.csdn.net/weixin_41888813/article/details/81120446