找不到针对类org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer的序列化器,也未找到创建BeanSerializer的属性

时间:2018-09-18 06:22:13

标签: java hibernate jackson

这个问题似乎与此No serializer found for class org.hibernate.proxy.pojo.javassist.Javassist?相同。但是有一些区别。这个问题的作者有懒惰的关系。相反,我的实体是如此简单:

@Entity
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

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

    @Length(min = 5, max = 50, message = "error.firstName.length")
    @Column(name = "first_name")
    private String firstName;

    @Length(min = 5, max = 50, message = "error.lastName.length")
    @Column(name = "last_name")
    private String lastName;

    public User(Long id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public User(String firstName, String lastName) {
        this(null, firstName, lastName);
    }

    public User() {}

    // getters & setters

}

但我仍然收到此错误:

  

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:否   找到用于类的序列化器   org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer,无   发现的用于创建BeanSerializer的属性(为避免出现异常,   禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用   链:   ua.savenkodenys.user_management.persistence.entity.User _ $$ _ jvst11c_0 [“ handler”])(在错误描述中)

我还想知道这是什么-(通过参考链: ua.savenkodenys.user_management.persistence.entity.User _ $$ _ jvst11c_0 [“ handler”] )(在错误说明中)

ua.savenkodenys.user_management.persistence.entity - these are my packages

1 个答案:

答案 0 :(得分:0)

jackson-datatype-hibernate可以对具有延迟加载对象的JSON序列化/反序列化。

在延迟加载中,代理对象代表您的对象,直到可以从数据库中检索到您的对象为止,这就是引用链所指的对象。

这个问题可能是duplicate,所以请尝试首先实现那里提到的配置类。

或者,您可以尝试将以下注释添加到您的User实体,尽管这仅是掩盖问题而不是解决问题。

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