报错:Disconnected from the target VM

报错:Disconnected from the target VM

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

注:

遇到这个报错的话,原因有可能只是因为后台代码写错了,先检查后台代码。



可能原因1:

莫名报错:userManagementServiceImpl中无法注入底层写好的baseRepository:

解决方案一:
在UserManagementServiceImpl业务层实现类中:

需要重写BaseRepository

@Override
@Autowired
public void setBaseRepository(BaseRepository<User, Long> baseRepository) {
    super.setBaseRepository(baseRepository);
}

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


 

可能原因2: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);

 

可能原因3:代理端口被占用

        proxy: {
            '/api': {
                target: 'http://localhost:8083',
                changeOrigin: true,
                pathRewrite: {
                    '^/api': ''
                }
            },
        },

 

可能原因4: 需要注入的类未交给spring容器管理

缺少了注解:@Component


版权声明:本文为weixin_41888813原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。