簡體   English   中英

A 類不能轉換為 A 類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM