Jackson Hibernate Spring返回带有外键而非对象的JSON

马里奥·鲁德曼(Mario Rudman)

尝试获取具有多对多关系的对象时遇到问题。我有一张桌子上的航班,上面有机场目的地/始发地和航空公司。机场有其国家,而航空公司有其国家。问题是机场和航空公司的国家/地区相同。杰克逊只写一个国家作为对象,而另一国只写其ID。这是我得到的JSON:

[{
"flightId": 1,
"airportByFkAirportOrigin": {
    "airportId": 1,
    "country": {
        "countryId": 1,
        "name": "Croatia"
    },
    "city": "Zagreb",
    "name": "Pleso"
},
"airportByFkAirportDest": {
    "airportId": 2,
    "country": {
        "countryId": 2,
        "name": "Germany"
    },
    "city": "Frankfurt",
    "name": "Flughafen Frankfurt am Main"
}
"airline": {
    "airlineId": 1,
    "country": 1,
    "name": "Croatia Airlines",
    "callsign": "Croatia",
}
"date": "2015-05-20",
"timeDepartScheduled": "21:00",
"timeArriveScheduled": "22:30",
}]

正如您在“机场起源”中所看到的,写入了名为“克罗地亚”的“国家”对象,并写入了与“机场目的地”对象的名称“德国”相同的对象。但是对于“航空公司国家”对象,也应该是“克罗地亚”,但由于某种原因,只会写入其ID。为了清楚起见,在机场和航空公司中的两个Country对象上的抓取设置都设置为EAGER,并且在调试时我可以看到休眠状态为包括Airline在内的所有对象都返回了Country对象,但是由于某些原因,Jackson决定在以下情况下在Airline中删除该对象转换为JSON。有人知道为什么吗?

编辑:我在这里找到了相同的问题但没有解决方案。有人吗?

马里奥·鲁德曼(Mario Rudman)

Jackson仅在对象首次出现时才编写整个对象的原因是@JsonIdentityInfo批注,该批注用于处理循环对象图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

序列化Hibernate对象时引发奇怪的Jackson异常

无限递归与Jackson JSON和Hibernate JPA问题

无限递归与Jackson JSON,Spring MVC 4.2和Hibernate JPA问题

Spring Boot Rest Controller错误使用Jackson和Hibernate将POJO转换为JSON

Spring MVC REST JPA Hibernate Jackson无限递归一对多JSON错误

带有任意JSON密钥的Jackson Jackson

在双向对象上使用Hibernate和Jackson时出现StackOverflow异常

Spring Data REST + Hibernate 5 + Jackson LAZY 序列化失败

Hibernate和Jackson懒惰序列化

带有xml的Spring Boot和带有jackson的json仅返回xml

¿创建产品功能?在带有外键的JPA Hibernate Spring-boot中

Spring/Hibernate 多个数据源之间带有外键

HIbernate无法删除带有外键的实体。外键设置为空

Spring mysql Hibernate中的外键参考

Spring MVC和Jackson上的Jackson MismatchedInputException

Spring Jackson无法解析JSON对象

Spring / Jackson映射内部JSON对象

在Spring Boot Rest Controller中使用与其他实体引用一起映射到Hibernate实体的JSON时使用Jackson InvalidTypeIdException

Jackson:地图嵌套对象

Jackson 解析复杂对象

Spring Hibernate忽略json对象

对象类型的Jackson JSON列表

Spring和Jackson的递归

带有 JPA 和 Hibernate 的复合键

为什么Hibernate插入带有外键的父行而不插入子行?

如何使用Jackson将JSON对象键解析为整数?

当json键与jackson相同时解析json

使用Jackson序列化带有嵌套对象的POJO

JPA / HIBERNATE:如何查询返回非实体对象或带有内部非实体对象的对象列表?