[英]class A cannot be cast to class A
我正在使用 Hibernate JPA 和 SQL Server 作為數據庫在 Java SpringBoot 中開發 REST API。
我的應用程序引發以下異常:
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 的未命名模塊中
問題出現在以下代碼行中
public DriverDTO getDriverByPhoneNumber(String phoneNumber) {
DriverDTO driverDTO= entityManager.createQuery("SELECT d FROM DriverDTO d WHERE d.phoneNumber="+phoneNumber,DriverDTO.class).getSingleResult();
return driverDTO;
}
這是我的 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;
}
這是我的數據庫表,如您所見,列與 DriverDTO 類匹配:
當我執行以下操作時,我完全沒有問題:
public List<DriverDTO> getAllDrivers() {
List<DriverDTO> driverDTOS = entityManager.createQuery("SELECT d FROM DriverDTO d", DriverDTO.class).getResultList();
return driverDTOS;
}
我似乎無法進行簡單的 where 查詢。 我也嘗試過這樣查詢: entityManager.find(DriverDTO.class,1); 它也不起作用。 在我的數據庫中確實存在 id=1 行。
最后經過大量研究我發現這個問題與spring dev工具包有關。 我的解決方案是從我的 pom.xml 中刪除在我的情況下不需要的包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.