Duang,最近搭建了一个自己的博客小破站,欢迎各位小伙伴来访吖:https://www.ares-stack.cn/blog_service/#/gamehttps://www.ares-stack.cn/blog_service/#/game
报错: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