当我试图导航到一个endpoint时,我得到以下错误
类型定义错误:[简单类型,类org.hibernate.proxy.pojo.ByteBuddy.ByteBuddyInterceptor];嵌套异常为com.fasterxml.jackson.databind.exc.InvalidDefinitionException:未找到类org.hibernate.proxy.pojo.ByteBuddy.ByteBuddyInterceptor的序列化程序,也未发现创建BeanSerializer的属性(若要避免异常,请禁用SerializationFeature.fail_on_empty_beans)
我检查了我所有的模型,所有的属性都有getter和setter。那有什么问题?
我可以通过添加spring.jackson.serialization.fail-on-emptybeans=false
来修复这个问题,但我认为这只是一个隐藏异常的工作。
编辑
产品
型号:
@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
}
在我的控制器中,我返回responseEntity
我在使用spring存储库进行教程时遇到了这个错误。原来是在为我的实体构建服务类的阶段出错了。
在您的serviceImpl类中,可能有如下内容:
@Override
public YourEntityClass findYourEntityClassById(Long id) {
return YourEntityClassRepositorie.getOne(id);
}
将其更改为:
@Override
public YourEntityClass findYourEntityClassById(Long id) {
return YourEntityClassRepositorie.findById(id).get();
}
基本上,getOne是一个惰性加载操作。因此,您只得到对该实体的引用(代理)。这意味着实际上没有进行DB访问。只有当您调用它的属性时,它才会查询DB。findByID在调用它时立即进行“eagerly”/调用,这样就完全填充了实际的实体。
看一下这个:链接到getOne&findByID之间的区别
com.fasterxml.jackson.databind.jsonMappingException:未发现用于java.io.BufferedReader类的序列化程序,也未发现用于创建BeanSerializer的属性(为了避免异常,禁用SerializationFeature.fail_on_empty_beans)(通过引用链:pj.core.bean.actionResult[“dat
我有一个类的数组列表,如下所示: 我想把这个列表写成Json,并尝试了以下代码: 并收到以下错误信息: 找不到类~~~~~的序列化程序,也找不到创建BeanSerializer的属性(为了避免异常,请禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:java.util.ArrayList[0])` 我尝试添加但由于未知原因,它使所有Person对象
下面是我的项目的实体类 这是会话表 这里是用户实体 我正在使用JPARepository在我的mysql数据库中保存训练和会话对象 但每当我保存训练对象或会话对象时 我得到了错误 我谷歌了它,发现我需要序列化和反序列化手动…但我不知道怎么做…请帮帮我..
问题内容: 我有以下代码在引用时可在控制台应用程序中使用 当我更新对我的引用时,得到: 找不到play.api.libs.json.JsObject类型的Json序列化程序作为JsObject。尝试为此类型实现隐式OWrites或OFormat。 然后 val collection = db.collectionJSONCollection 我究竟做错了什么? 问题答案: ReactiveMong
问题内容: 我正在处理,&,但出现此错误。 请在下面检查我的实体 我该如何解决? 问题答案: 通过hibernate代理对象进行延迟加载时,我遇到了类似的问题。通过用以下方式注释具有延迟加载的私有属性的类来解决此问题: 我假设您可以在代理对象上添加打破JSON序列化到该批注的属性。 问题在于实体是延迟加载的,序列化是在实体完全加载之前发生的。