콩을 Gson을 통해 json으로 변환하려고합니다. 내 bean (Logs)은 다른 bean (Log)과 첫 번째 bean에 대한 두 번째 bean 참조를 포함합니다.Java에서 참조 빈을 json으로 변환하는 방법은 무엇입니까?
@Entity
@Table(name = "t_logs")
public class Logs {
@Id
@Column(name = "executionid")
private String executionId;
@Column(name = "sentdate")
@Temporal(TemporalType.TIMESTAMP)
private Date sentDate;
@Column(name = "sent")
private boolean sent;
@OneToMany(mappedBy = "logs", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Log> logList;}
@Entity
@Table(name = "t_log")
public class Log {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@ManyToOne
@JoinColumn(name = "executionid")
private Logs logs;
@Column(name = "startdate")
@Temporal(TemporalType.TIMESTAMP)
private Date startDate;
@Column(name = "enddate")
@Temporal(TemporalType.TIMESTAMP)
private Date endDate;
}
그래서 Json 형식을 변환하려고하면 위와 같은 오류가 발생합니다. java.lang.StackOverflowError의는
나는이주기 생각하지만 난 그것을 해결하는 방법을, 나는
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create();
return gson.toJson(logs, Logs.class);
주석을 무시 하시겠습니까? –
Gson에서 필드를 제외하려면 여기 옵션을 확인하십시오. http://howtoprogram.xyz/2016/10/16/ignore-or-exclude-field-in-gson/ –
@Selvakumar, 고맙습니다.하지만 제출해야합니다. 로그 bean (executionId) –