完成 500 INTERNAL_SERVER_ERROR SpringBoot Angular : OneToMany 问题
Completed 500 INTERNAL_SERVER_ERROR SpringBoot Angular : OneToMany Problem
每一次我尝试加载列表 RDV 我都遇到了这个问题:
**类型定义错误:[简单类型,classorg.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor];嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException:没有找到 class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 的序列化器,也没有发现创建 BeanSerializer 的属性(为避免异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:java.util.ArrayList[0]->com.angular.springboot.model.Rv["client"]->com.angular.springboot.model.Client$HibernateProxy$3lai3IqI["hibernateLazyInitializer"])]
o.s.web.servlet.DispatcherServlet:完成 500 INTERNAL_SERVER_ERROR**
但是当我删除 OneToMany 它的工作!!
这是我的客户 class :
public class Client implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String prenom;
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@OneToMany(mappedBy = "client", fetch = FetchType.LAZY)
private List<Rv> lrdvs;
@JsonIgnore
public List<Rv> getLrdvs() {
return lrdvs;
}
@JsonIgnore
public void setLrdvs(List<Rv> lrdvs) {
this.lrdvs = lrdvs;
}
}
这是 Medecin class:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "medecins")
public class Medecin implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String nom;
private String prenom;
private String specialite;
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@OneToMany(mappedBy = "medecin", fetch = FetchType.LAZY)
private List<Rv> lrdvs;
@JsonIgnore
public List<Rv> getLrdvs() {
return lrdvs;
}
@JsonIgnore
public void setLrdvs(List<Rv> lrdvs) {
this.lrdvs = lrdvs;
}
}
这是我的 RDV class
@Entity
@Data
@AllArgsConstructor
public class Rv {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate jour;
@JoinColumn(name = "ID_Client")
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Client client;
@JoinColumn(name = "ID_Medecin")
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Medecin medecin;
public Rv() {
client = new Client();
medecin = new Medecin();
}
}
谁知道怎么解决。谢谢 :)
将此行添加到您的应用程序属性
spring.jackson.serialization.fail-on-empty-beans=false
每一次我尝试加载列表 RDV 我都遇到了这个问题:
**类型定义错误:[简单类型,classorg.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor];嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException:没有找到 class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 的序列化器,也没有发现创建 BeanSerializer 的属性(为避免异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:java.util.ArrayList[0]->com.angular.springboot.model.Rv["client"]->com.angular.springboot.model.Client$HibernateProxy$3lai3IqI["hibernateLazyInitializer"])]
o.s.web.servlet.DispatcherServlet:完成 500 INTERNAL_SERVER_ERROR**
但是当我删除 OneToMany 它的工作!!
这是我的客户 class :
public class Client implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String prenom;
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@OneToMany(mappedBy = "client", fetch = FetchType.LAZY)
private List<Rv> lrdvs;
@JsonIgnore
public List<Rv> getLrdvs() {
return lrdvs;
}
@JsonIgnore
public void setLrdvs(List<Rv> lrdvs) {
this.lrdvs = lrdvs;
}
}
这是 Medecin class:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "medecins")
public class Medecin implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String nom;
private String prenom;
private String specialite;
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
@OneToMany(mappedBy = "medecin", fetch = FetchType.LAZY)
private List<Rv> lrdvs;
@JsonIgnore
public List<Rv> getLrdvs() {
return lrdvs;
}
@JsonIgnore
public void setLrdvs(List<Rv> lrdvs) {
this.lrdvs = lrdvs;
}
}
这是我的 RDV class
@Entity
@Data
@AllArgsConstructor
public class Rv {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate jour;
@JoinColumn(name = "ID_Client")
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Client client;
@JoinColumn(name = "ID_Medecin")
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Medecin medecin;
public Rv() {
client = new Client();
medecin = new Medecin();
}
}
谁知道怎么解决。谢谢 :)
将此行添加到您的应用程序属性
spring.jackson.serialization.fail-on-empty-beans=false