[英]class A cannot be cast to class A
I'm developing a REST API in Java SpringBoot using Hibernate JPA and SQL Server as database.我正在使用 Hibernate JPA 和 SQL Server 作为数据库在 Java SpringBoot 中开发 REST API。
My app throws the following Exception:我的应用程序引发以下异常:
java.lang.ClassCastException: class com.estrelladekleene.safetycar.dto.DriverDTO cannot be cast to class com.estrelladekleene.safetycar.dto.DriverDTO (com.estrelladekleene.safetycar.dto.DriverDTO is in unnamed module of loader 'app'; com.estrelladekleene.safetycar.dto.DriverDTO is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @47e566be) java.lang.ClassCastException: com.estrelladekleene.safetycar.dto.DriverDTO 类无法转换为 com.estrelladekleene.safetycar.dto.DriverDTO 类(com.estrelladekleene.safetycar.dto.DriverDTO 位于加载程序“app”的未命名模块中; com.estrelladekleene.safetycar.dto.DriverDTO 位于加载程序 org.springframework.boot.devtools.restart.classloader.RestartClassLoader @47e566be 的未命名模块中
The problem appears in the following lines of code问题出现在以下代码行中
public DriverDTO getDriverByPhoneNumber(String phoneNumber) {
DriverDTO driverDTO= entityManager.createQuery("SELECT d FROM DriverDTO d WHERE d.phoneNumber="+phoneNumber,DriverDTO.class).getSingleResult();
return driverDTO;
}
This is my DriverDTO class:这是我的 DriverDTO 类:
@Entity
@Table(name = "Driver")
public class DriverDTO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "phoneNumber")
private String phoneNumber;
@Column(name = "fullName")
private String fullName;
@Column(name = "mail")
private String mail;
@Column(name = "batteryPercentage")
private Integer batteryPercentage;
@Column(name = "firebaseId")
private String firebaseId;
public DriverDTO() {
}
public DriverDTO(Long id, String phoneNumber, String fullName, String mail, Integer batteryPercentage, String firebaseId) {
this.id = id;
this.phoneNumber = phoneNumber;
this.fullName = fullName;
this.mail = mail;
this.batteryPercentage = batteryPercentage;
this.firebaseId = firebaseId;
}
This is my database Table and as you can see the Columns matches DriverDTO class:这是我的数据库表,如您所见,列与 DriverDTO 类匹配:
When I do the following I have no problem at all:当我执行以下操作时,我完全没有问题:
public List<DriverDTO> getAllDrivers() {
List<DriverDTO> driverDTOS = entityManager.createQuery("SELECT d FROM DriverDTO d", DriverDTO.class).getResultList();
return driverDTOS;
}
I can't seem to do a simple where query.我似乎无法进行简单的 where 查询。 I also tried querying this way: entityManager.find(DriverDTO.class,1);我也尝试过这样查询: entityManager.find(DriverDTO.class,1); and it doesn't work either.它也不起作用。 In my database does exist id=1 row.在我的数据库中确实存在 id=1 行。
Finally after a lot of research I found that this problem is related to spring dev tools package.最后经过大量研究我发现这个问题与spring dev工具包有关。 My solution was removing the package from my pom.xml that in my case wasn't required.我的解决方案是从我的 pom.xml 中删除在我的情况下不需要的包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.