gpt4 book ai didi

java - 找不到类 org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 的序列化程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:23:06 26 4
gpt4 key购买 nike

当我尝试导航到一个端点时,出现以下错误

Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)  

我检查了所有模型,所有属性都有 getter 和 setter。那么问题是什么?

我可以通过添加 spring.jackson.serialization.fail-on-empty-beans=false 来解决这个问题但我认为这只是一种隐藏异常的解决方法。

编辑

Product型号:

@Entity
public class Product {
private int id;
private String name;
private String photo;
private double price;
private int quantity;
private Double rating;
private Provider provider;
private String description;
private List<Category> categories = new ArrayList<>();
private List<Photo> photos = new ArrayList<>();

// Getters & Setters
}

PagedResponse类:

public class PagedResponse<T> {

private List<T> content;
private int page;
private int size;
private long totalElements;
private int totalPages;
private boolean last;

// Getters & Setters
}

RestResponse类:

public class RestResponse<T> {
private String status;
private int code;
private String message;
private T result;

// Getters & Setters
}

在我的 Controller 中,我返回 ResponseEntity<RestResponse<PagedResponse<Product>>>

最佳答案

我在使用 spring 存储库做教程时遇到了这个错误。原来是在为我的实体构建服务类的阶段出错了。

在你的 serviceImpl 类中,你可能有这样的东西:

    @Override
public YourEntityClass findYourEntityClassById(Long id) {
return YourEntityClassRepositorie.getOne(id);
}

将此更改为:

    @Override
public YourEntityClass findYourEntityClassById(Long id) {
return YourEntityClassRepositorie.findById(id).get();
}

基本上 getOne 是一个延迟加载操作。因此,您只能获得对该实体的引用(代理)。这意味着实际上没有进行数据库访问。只有当您调用它的属性时,它才会查询数据库。 findByID 在您调用它时“急切地”/立即执行调用,因此您拥有完全填充的实际实体。

看看这个:Link to the difference between getOne & findByID

关于java - 找不到类 org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 的序列化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52656517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com