java 返回列表时,Spring 预期出现“:”而不是“t”错误?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/37848789/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Spring Expected ':' instead of 't' error when returning List?
提问by James111
I've got a simple RequestMapping
method that returns a list of Users
, the Users
model has a ONE TO MANY
relation to HolidayDates
...I'm just playing around with it, so I've chosen holiday dates as the relation (list of dates they went on a holiday).
我有一个简单的RequestMapping
方法可以返回一个列表Users
,该Users
模型ONE TO MANY
与HolidayDates
......我只是在玩弄它,所以我选择了假期日期作为关系(他们去度假的日期列表)。
So ONE
user can have MANY
related Dates
.
所以ONE
用户可以有MANY
相关的Dates
.
User model:
用户模型:
@Entity
@Table(name="user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="userId")
private int userId;
@Column(name="about")
private String about;
// Maybe change to fetchtype eager
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "holidayDates")
private Set<HolidayDates> holidayDates;
public void setHolidayDates(Set<HolidayDates> holidayDates) {
this.holidayDates = holidayDates;
}
public Set<HolidayDates> getHolidayDates() {
return holidayDates;
}
...Other setters and getters
HolidayDate model:
HolidayDate 型号:
@Entity
@Table(name="holiday_dates")
public class HolidayDates {
//
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="holidayId")
private int holidayId;
@Column(name="start_date")
private String startDate;
@Column(name="end_date" )
private String endDate;
@ManyToOne
@JoinColumn(name = "userId")
private User user;
When I goto find all Users & their related holiday dates, using the code below:
当我使用以下代码查找所有用户及其相关假期日期时:
@RequestMapping(value="{name}", method=RequestMethod.GET)
public @ResponseBody List<User> user(@PathVariable String name) {
List<User> user = userService.findAll();
// Simply implementing List<User> findAll(); from userService auto wired field
return user;
}
The userService has an @autowired
field to userDao
, which simply extends JPA repository:
userService 有一个@autowired
字段 to userDao
,它只是扩展 JPA 存储库:
public interface UserDao extends JpaRepository <User, Integer> {
Now when I run a GET
request on the controller, it returns the following response:
现在,当我GET
在控制器上运行请求时,它返回以下响应:
Expected ':' instead of 't'
As well as a big long stack trace of fasterxml.Hymanson errors:
以及fasterxml.Hymanson错误的一大堆长堆栈跟踪:
[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:149) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:111) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:24) ~[Hymanson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.Hymanson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:693) ~[Hymanson-databind-2.6.6.jar:2.6.6]
Doesn't spring handle all this jpa/model
to json
conversion?
没有春天处理所有这jpa/model
以json
转换?
回答by jny
You have an infinite recursion going on during serialization since User
refers to HolidayDates
and HolidayDates
refer to User
. You can stop it by adding @JsonIgnore
to getUser
in HolidayDates
.
由于User
引用HolidayDates
和HolidayDates
引用,您在序列化期间进行了无限递归User
。您可以通过添加@JsonIgnore
到getUser
in来停止它HolidayDates
。
回答by Manu
@JsonManagedReference
private Set<HolidayDates> holidayDates;
and
和
@JsonBackReference
private User user;
回答by Long Nguyen
Same your error, but in my case cause I'm missing implement default constructor.
同样的错误,但在我的情况下,因为我缺少实现默认构造函数。
public User() {}
回答by triadiktyo
While I agree the correct answer to the question is the accepted answer by jny, I got exactly the same problem by having a bad Hymanson objectMapper config installed in Spring Boot which for some reason, instead of fixing date serialization, messed up the serialization of an entirely different class. I removed the following code and things started working again. Just puting this here in case someone has the same problem
虽然我同意这个问题的正确答案是 jny 接受的答案,但我在 Spring Boot 中安装了一个错误的 Hymanson objectMapper 配置时遇到了完全相同的问题,出于某种原因,它没有修复日期序列化,而是搞砸了一个完全不同的类。我删除了以下代码,事情又开始工作了。只是把它放在这里以防有人遇到同样的问题
@Bean
@Primary
public ObjectMapper objectMapper(Hymanson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
// objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false);
return objectMapper;
}
回答by Shubham
This Problem is because of infinite recursion between entity classes use @JsonIgnore for older versions and this code for newer versions.
这个问题是因为实体类之间的无限递归对旧版本使用@JsonIgnore,对新版本使用此代码。
@OneToMany(
mappedBy = "queue_group",fetch = FetchType.LAZY,
cascade = CascadeType.ALL
)
@JsonManagedReference
private Set<Queue> queues;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "qid")
// @JsonIgnore
@JsonBackReference
private Queue_group queue_group;
回答by Nitin Zadage
This is very old post but I faced similar issue where back reference application was going in loop and I was getting similar kind of error. I wanted dependent object to be included in to be retained on either side of the entity. @JsonManagedReference
, @JsonBackReference
and @JsonIdentityInfo
were not helping. You can use @JsonIgnoreProperties
instead.
这是一篇很老的帖子,但我遇到了类似的问题,其中反向引用应用程序正在循环中,并且我遇到了类似的错误。我希望包含的依赖对象保留在实体的任一侧。@JsonManagedReference
,@JsonBackReference
并@JsonIdentityInfo
没有帮助。你可以@JsonIgnoreProperties
改用。
In class User
在班上 User
@JsonIgnoreProperties(value = {"user"})
private Set<HolidayDates> holidayDates;
and in HolidayDates
并在 HolidayDates
@JsonIgnoreProperties(value = {"holidayDates"})
private User user;
This way worked for me very well. This post http://springquay.blogspot.com/2016/01/new-approach-to-solve-json-recursive.html?m=1explains pros and cons of each of the above annotations.
这种方式对我非常有效。这篇文章http://springquay.blogspot.com/2016/01/new-approach-to-solve-json-recursive.html?m=1解释了上述每个注释的优缺点。
回答by Tokiniaina Eddy Andriamiandris
add @JsonManagedReferencein your User model and @JsonBackReferencefor HolidayDates model
添加@JsonManagedReference您的用户模型和@JsonBackReference为HolidayDates模型
User model:
用户模型:
@OneToMany
@JsonManagedReference
private Set<HolidayDates> holidayDates;
HolidayDate model:
HolidayDate 型号:
@ManyToOne
@JsonBackReference
private User user;