- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的 Spring Data Rest 应用程序中,定义 excerptProjection
时,@JsonBackReference
将被忽略。
调用 GET/foos/{id}
时,我得到响应:(此处省略了_link
元素)
{
"text": "Foo",
"additionalText": "Additional Text",
"bar": {
"text": "Bar",
"_embedded": {
"foo": {
"text": "Foo",
"bar": {
"text": "Bar"
}
}
}
}
}
给定:
@Entity
public class Foo {
@Id
@GeneratedValue
private Long id;
private String text;
private String additionalText;
@JsonManagedReference
@OneToOne(mappedBy = "foo", cascade = ALL)
private Bar bar;
}
和
@Entity
public class Bar {
@Id
@GeneratedValue
private Long id;
private String text;
@JsonBackReference
@OneToOne
private Foo foo;
}
使用存储库:
@RepositoryRestResource(excerptProjection = FooPublicProjection.class)
public interface FooRepository extends CrudRepository<Foo, Long> {}
如果删除 excerptProjection
定义,我会得到以下结果:
{
"text": "Foo",
"additionalText": "Additional Text",
"bar": {
"text": "Bar"
}
}
如何才能让 Spring Data Rest 不在其自己的子节点中渲染 Foo
?
最佳答案
这是一个解决方案,前提是您正在使用 Jackson(我猜您是这样做的)。在我的项目中,我使用了 JSOG处理我所有的循环关系。我认为它也可以解决您的问题。
@Entity
@JsonIdentityInfo(generator = JSOGGenerator.class)
public class Foo {
@Id
@GeneratedValue
private Long id;
private String text;
private String additionalText;
@JsonManagedReference
@OneToOne(mappedBy = "foo", cascade = ALL)
private Bar bar;
}
和:
@Entity
@JsonIdentityInfo(generator = JSOGGenerator.class)
public class Bar {
@Id
@GeneratedValue
private Long id;
private String text;
@JsonBackReference
@OneToOne
private Foo foo;
}
请注意,如果您的客户端是 javascript,则有一个补充的 JSOG 库可以自动解析您的 JSON 并解析循环。
关于java - 使用 excerptProjection 时 @JsonBackreference 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42551724/
我有来自用户和角色的关系,其中角色具有“一对多”关系,而用户与“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
我是一名优秀的程序员,十分优秀!