gpt4 book ai didi

json - 没有为类 org.hibernate.proxy.pojo.javassist.Javassist 找到序列化程序?

转载 作者:IT老高 更新时间:2023-10-28 12:43:10 25 4
gpt4 key购买 nike

我正在处理 SpringMVCHibernateJSON,但出现此错误。

HTTP Status 500 - 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 SerializationConfig.SerializationFeature.FAIL_ON_EMPTY_BEANS) ) 

请在下方查看我的实体

    @Entity
@Table(name="USERS")
public class User {

@Id
@GeneratedValue
@Column(name="USER_ID")
private Integer userId;

@Column(name="USER_FIRST_NAME")
private String firstName;

@Column(name="USER_LAST_NAME")
private String lastName;


@Column(name="USER_MIDDLE_NAME")
private String middleName;

@Column(name="USER_EMAIL_ID")
private String emailId;

@Column(name="USER_PHONE_NO")
private Integer phoneNo;

@Column(name="USER_PASSWORD")
private String password;

@Column(name="USER_CONF_PASSWORD")
private String confPassword;

@Transient
private String token;

@Column(name="USER_CREATED_ON")
private Date createdOn;

@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@Fetch(value = FetchMode.SUBSELECT)
@JoinTable(name = "USER_ROLES", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
private List<ActifioRoles> userRole = new ArrayList<ActifioRoles>();


@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy="userDetails")
@Fetch(value = FetchMode.SUBSELECT)
private List<com.actifio.domain.Address> userAddress = new ArrayList<com.actifio.domain.Address>();

@OneToOne(cascade=CascadeType.ALL)
private Tenant tenantDetails;


public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailId() {
return emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfPassword() {
return confPassword;
}
public void setConfPassword(String confPassword) {
this.confPassword = confPassword;
}
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}

public List<ActifioRoles> getUserRole() {
return userRole;
}

public void setUserRole(List<ActifioRoles> userRole) {
this.userRole = userRole;
}
public String getMiddleName() {
return middleName;
}
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
public Integer getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(Integer phoneNo) {
this.phoneNo = phoneNo;
}

public List<com.actifio.domain.Address> getUserAddress() {
return userAddress;
}
public void setUserAddress(List<com.actifio.domain.Address> userAddress) {
this.userAddress = userAddress;
}
public Tenant getTenantDetails() {
return tenantDetails;
}
public void setTenantDetails(Tenant tenantDetails) {
this.tenantDetails = tenantDetails;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}

}

我该如何解决这个问题?

最佳答案

我在通过 hibernate 代理对象延迟加载时遇到了类似的问题。通过使用以下方式注释具有延迟加载的私有(private)属性的类来解决它:

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

我假设您可以在代理对象上添加打破 JSON 序列化到该注释的属性。

问题是实体被延迟加载,并且序列化发生在它们完全加载之前。

Hibernate.initialize(<your getter method>);

关于json - 没有为类 org.hibernate.proxy.pojo.javassist.Javassist 找到序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24994440/

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