- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个类:
人.java:
@Entity
@PrimaryKeyJoinColumn(name="owner_id")
public class Person extends Owner {
@ManyToOne
@JoinColumn(name = "car_sharing_id")
@JsonBackReference
private CarSharing carSharing;
}
汽车共享.java:
@Entity
public class CarSharing extends MetadataEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne
@JoinColumn(name = "owner_id", nullable = false)
@NotNull
private Person owner;
@OneToMany(mappedBy = "carSharing", cascade = CascadeType.ALL)
@Valid
private Set<Person> members;
}
我正在使用 @JsonBackReference
来避免无限循环。 CarSharing
类工作正常,问题只发生在 Person
类。
获取人员似乎忽略了 carSharing
属性。由于它在返回到服务器时为 null
,因此更新取消了对 person
表中 carsharing_id
的引用的链接。
停止循环很好,但我还需要 Person
类中可用的 carSharing
。
知道如何解决这个问题吗?
最佳答案
如果您使用的是 Jackson 2.x,则可以使用注解 @JsonIdentityInfo
:
Whether Object Identity information is to be used for determining how to serialize/deserialize property value to/from JSON (and other data formats) will be based on existence (or lack thereof) of @JsonIdentityInfo annotation.
see: http://wiki.fasterxml.com/JacksonFeatureObjectIdentity
例如,如果您注释类 CarSharing
:
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
//...
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class CarSharing {
一个人(我给这个类加了字段名)的JSON结果是:
{
"carSharing": {
"@id": 1,
"id": 12345,
"owner": {
"carSharing": 1,
"name": "owner"
},
"members": [
{
"carSharing": 1,
"name": "owner"
},
{
"carSharing": 1,
"name": "driver2"
},
{
"carSharing": 1,
"name": "driver"
}
]
},
"name": "driver2"
}
还有一个带有 id=12345
的 CarSharing 实例:
{
"@id": 1,
"id": 12345,
"owner": {
"carSharing": 1,
"name": "owner"
},
"members": [
{
"carSharing": 1,
"name": "owner"
},
{
"carSharing": 1,
"name": "driver2"
},
{
"carSharing": 1,
"name": "driver"
}
]
}
字段 @id
是从 jackson 生成的。如果引用对象未序列化,则该值设置为引用对象的@id
。
关于java - @jsonbackreference 不绑定(bind)关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566865/
我有来自用户和角色的关系,其中角色具有“一对多”关系,而用户与“role_id”列具有“多对一”关系 当我在 Spring Boot 上使用关系时,当我使用 @OneToMany 和 @ManyToO
我正在使用 spring 4.0.1、hibernate 4.3.5、jackson 1.9.2 和 STS IDE我正在创建一个以 JSON 格式返回数据的 RESTful 网络服务当我使用 Hib
我对 JSON 的了解有限,因此希望您能为我指出正确的方向。 我正在尝试发布一个对象(库),但这会由于无限递归而引发异常 public class Library{ private List
我想知道Jackson中@JsonManagedReference和@JsonBackReference的区别? 最佳答案 @JsonManagedReference is the forward p
我正在使用 RestEasy、Jboss 7 和 EJB 3.1。我正在创建一个以 JSON 格式返回数据的 RESTful Web 服务。 问题是我有一个 @ManyToOne在序列化过程中导致无限
我有两个类: 人.java: @Entity @PrimaryKeyJoinColumn(name="owner_id") public class Person extends Owner {
非常感谢您解释我的问题。 我有 2 个实体和 1 个桥接表实体, 假设他们是团队、用户和团队用户。 团队实体: @Id @GeneratedValue(strategy = Gener
非常感谢您解释我的问题。 我有 2 个实体和 1 个桥接表实体, 假设他们是团队、用户和团队用户。 团队实体: @Id @GeneratedValue(strategy = Gener
回答 我将解决有关此博客的问题 Jackson – Bidirectional Relationships 谢谢你。 更新2 问题与 JsonBackReference 和 JsonManagedRe
在我的 Spring Data Rest 应用程序中,定义 excerptProjection 时,@JsonBackReference 将被忽略。 调用 GET/foos/{id} 时,我得到响应:
我知道@JsonIgnore和@JsonManagedReference,@JsonBackReference都是用来解决无限递归(StackOverflowError)的 code>,这两者有什么区
为了避免无限递归,我使用 @JsonManagedReference 和 @JsonBackReference 。但是在检索结果时,我只能以一种方式获得预期结果。 @ManyToMany(ca
我正在使用 Spring Boot 编写 OneToMany 关系,一个属性可以有多个 propertySale。 这是我的属性类: @Data @Getter @Entity @Table(name
我读过了 http://vard-lokkur.blogspot.com/2010/10/json-jackson-to-rescue.html http://vard-lokkur.blogspot
我是一名优秀的程序员,十分优秀!