Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["course"]->com.thon.entity.course.Course["createBy"]->com.thon.entity.system.User_$$_jvstdcb_0["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["course"]->com.thon.entity.course.Course["createBy"]->com.thon.entity.system.User_$$_jvstdcb_0["handler"])
一方实体
@JsonIgnoreProperties(ignoreUnknown=true)
public class Course extends IdEntity {
private static final long serialVersionUID = 2118439396249691137L;
private String name;
private User createBy;
private List<CourseTag> courseTags;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "course",cascade = CascadeType.ALL)
public List<CourseTag> getCourseTags() {
return courseTags;
}
public void setCourseTags(List<CourseTag> courseTags) {
this.courseTags = courseTags;
}
@ManyToOne(fetch = FetchType.LAZY)
public User getCreateBy() {
return createBy;
}
public void setCreateBy(User createBy) {
this.createBy = createBy;
}
}
@JsonIgnoreProperties(ignoreUnknown=true)
public class CourseTag extends IdEntity {
private static final long serialVersionUID = 7790694935170125722L;
private Integer region;
private Integer tagId;
private Course course;
public Integer getRegion() {
return region;
}
public void setRegion(Integer region) {
this.region = region;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "courseId")
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
public Integer getTagId() {
return tagId;
}
public void setTagId(Integer tagId) {
this.tagId = tagId;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
coursetag.setcourse(course)设置了吗?那就好顶一下下
在使用jackson的时候,需要根据情况设置几个参数的,例如输出的属性风格、允许单引号、允许不带引号的字段名称等等。
使用objectMapper.configure来设置各种参数,例如:
输出属性风格:<spanstyle="color:#E53333;">属性为空("")或者为NULL时都不序列化 <spanstyle="color:#E53333;">
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
允许单引号、允许不带引号的字段名称:
objectMapper.configure(Feature.ALLOW_SINGLE_QUOTES,true);
objectMapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES,true);
Enum的序列化与反序列化:
objectMapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);