【问题标题】:ConverterNotFoundException while trying to SELECT with Hibernate尝试使用 Hibernate 进行 SELECT 时发生 ConverterNotFoundException
【发布时间】:2020-03-30 13:03:27
【问题描述】:

我正在使用这种方法

@Query(value = "SELECT p.id, p.picture, p.name, p.age, p.info, p.city, p.state, p.status\n" +
        "FROM owner_pet as op\n" +
        "INNER JOIN lost_pet as p on op.id_pet =?1\n" +
        "WHERE op.id_owner =?1", nativeQuery = true)
List<LostPetEntity> find(Integer id);

当我在 MySQL 工作台上使用这个查询时,它给我带来了一个 LostPetEntity 表 但在我的 spring 应用程序中,它让我遇到了这个异常:

Servlet.service() 用于 servlet [dispatcherServlet] 在上下文中的路径 [] 抛出异常 [请求处理失败;嵌套异常是 org.springframework.core.convert.ConversionFailedException: 失败 从类型 [java.lang.Object[]] 转换为类型 [fearx.projects.animal.finder.api.entity.LostPetEntity] 值'{1, Dogola, 1, Nova União, /r/ban, RO, NOTICED, defaultvalue}';嵌套的 例外是 org.springframework.core.convert.ConverterNotFoundException:否 发现转换器能够从类型 [java.lang.Integer] 转换为 键入 [fearx.projects.animal.finder.api.entity.LostPetEntity]] 与 根本原因

org.springframework.core.convert.ConverterNotFoundException: 否 发现转换器能够从类型 [java.lang.Integer] 转换为 输入 [fearx.projects.animal.finder.api.entity.LostPetEntity]


LostPetEntity.class:

package fearx.projects.animal.finder.api.entity;

import fearx.projects.animal.finder.api.pets.PetDTO;
import fearx.projects.animal.finder.api.pets.Status;
import lombok.Data;

import javax.persistence.*;

@Entity(name = "lost_pet")
@Data
public class LostPetEntity {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    @Column
    private String picture;
    @Column
    private String name;
    @Column
    private String age;
    @Column
    private String info;
    @Column
    private String city;
    @Column
    private String state;
    @Column
    private String status;

    public LostPetEntity(PetDTO dto) {
        this.picture = dto.getPicture();
        this.name = dto.getName();
        this.age = dto.getAge();
        this.info = dto.getInfo();
        this.city = dto.getCity();
        this.state = dto.getState();
        this.status = String.valueOf(Status.MISSING);
    }

    public LostPetEntity() {
    }
}

我能做什么?

【问题讨论】:

  • 你映射LostPetEntity了吗?
  • 如果你愿意分享 LostPetEntity 课程会有所帮助
  • 对不起!我忘记了。马上更新。

标签: java spring hibernate spring-boot orm


【解决方案1】:

把你的代码改成这个。

List<Object[]> find(Integer id);

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 2012-09-11
    • 2019-02-27
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多