我在后端(Spring Data REST)上有许多与导出的存储库相关的资源。 我的客户端使用GET加载“root”资源,然后通过“_links”属性加载相关资源。 然后客户端可以修改加载图中的一些资源。
我想实现服务,它会使json使用所有延迟加载的资源,并立即使用版本检查(乐观)更新修改后的资源。
实施此方法的最佳方法是什么? 这种方法是不好的做法吗?
答案 0 :(得分:1)
我没有完全理解你的意思,但是如果你想在SDR中“热切地”加载嵌套资源,你可以关闭相关'嵌套'回购的导出(甚至完全删除它们)。例如:
@Entity
public class Parent {
//...
@OneToMany(cascaded = ALL, orphanRemoval = true)
private Set<Child> children;
}
@Entity
public class Child {
//...
}
@RepositoryRestResource
public interface ParentRepo extends JpaRepository<Parent, Long> {}
@RepositoryRestResource(exported = false)
public interface ChildRepo extends JpaRepository<Child, Long> {}
您还可以将cascade = ALL, orphanRemoval = true
参数添加到OneToMany
注释中。
然后所有子对象都将由Parent对象管理,公共有效负载将如下所示:
{
"name": "parent1",
"children": [
{
"name": "child1"
},
{
"name": "child2"
}
]
}
答案 1 :(得分:0)