No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

We Are Going To Discuss About No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor. So lets Start this Java Article.

No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

  1. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

    I came across this error while doing a tutorial with spring repository. It turned out that the error was made at the stage of building the service class for my entity.

  2. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

    I came across this error while doing a tutorial with spring repository. It turned out that the error was made at the stage of building the service class for my entity.

Solution 1

I came across this error while doing a tutorial with spring repository. It turned out that the error was made at the stage of building the service class for my entity.

In your serviceImpl class, you probably have something like:

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

Change this to:

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

Basically getOne is a lazy load operation. Thus you get only a reference (a proxy) to the entity. That means no DB access is actually made. Only when you call it’s properties then it will query the DB. findByID does the call ‘eagerly’/immediately when you call it, thus you have the actual entity fully populated.

Take a look at this: Link to the difference between getOne & findByID

Original Author Szelek Of This Content

Solution 2

You can Ignore to produce JSON output of a property by

@JsonIgnore 

Or If you have any lazy loaded properties having a relationship. You can use this annotation at top of the property.

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 

Example:

@Entity
public class Product implements Serializable{
   private int id;
   private String name;
   private String photo;
   private double price;
   private int quantity;
   private Double rating;
   private Provider provider;
   private String description;

   @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
   private List<Category> categories = new ArrayList<>();

   @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
   private List<Photo> photos = new ArrayList<>();

   // Getters & Setters
}

If you still have this error, please add this line of code in your application.properties file

spring.jackson.serialization.fail-on-empty-beans=false

I hope your problem will be solved. Thanks.

Original Author Subarata Talukder Of This Content

Solution 3

Changing the FetchType from lazy to eager did the trick for me.

Original Author Chris Neve Of This Content

Solution 4

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) work for me very well. It doesn’t miss any reference objects and resolve the problem.

In my case:

@Entity
@Table(name = "applications")
public class Application implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @NotBlank
    @Size(max = 36, min = 36)
    private String guid;

    @NotBlank
    @Size(max = 60)
    private String name;

    @Column(name = "refresh_delay")
    private int refreshDelay;

    @ManyToOne(fetch = LAZY)
    @JoinColumn(name = "id_production", referencedColumnName = "id")
    @JsonIgnoreProperties(value = {"applications", "hibernateLazyInitializer"})
    private Production production;

Original Author Seldo97 Of This Content

Conclusion

So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.

Also Read,

Siddharth

I am an Information Technology Engineer. I have Completed my MCA And I have 4 Year Plus Experience, I am a web developer with knowledge of multiple back-end platforms Like PHP, Node.js, Python and frontend JavaScript frameworks Like Angular, React, and Vue.

Leave a Comment