当前位置: 首页 > 面试题库 >

如何通过Spring的@RepositoryRestResource REST API以多对多关系添加元素?

滕翔飞
2023-03-14
问题内容

我在弄清楚究竟如何使用@RepositoryRestResource接口来创建两个相当简单的实体之间的多对多关系时遇到了麻烦。

例如,我有一个简单的父子实体关系,如下所示:

@Entity
public class ParentEntity {
    @Id
    @GeneratedValue
    private Long id;

   @ManyToMany
   private List<ChildEntity> children;
}

@Entity
public class ChildEntity {
    @Id
    @GeneratedValue
    private Long id;

    @ManyToMany(mappedBy="children")
    private List<ParentEntity> parents;
}

我的存储库正在使用普通的Spring @RepositoryRestResource HATEOS API:

@RepositoryRestResource(collectionResourceRel = "parents", path = "parents")
public interface ParentRepository extends PagingAndSortingRepository<ParentEntity, Long> {
}

@RepositoryRestResource(collectionResourceRel = "children", path = "children")
public interface ChildRepository extends PagingAndSortingRepository<ChildEntity, Long> {
}

我已经成功地使用POST创建了单独的ParentEntity和ChildEntity,但似乎无法弄清楚如何使用内置接口来PUT /
PATCH两者之间的关系。

看来我应该能够使用PUT将JSON发送到类似的东西http://localhost:8080/api/parents/1/children,但是到目前为止,我还没有找到一种有效的结构。


问题答案:

我在这里找到了答案:如何在Spring数据表中更新引用对象?

通过使用“ Content-Type:文本/ uri-
list”而不是JSON,可以通过PUT将资源“添加”到集合中并传递URI。您可以使用DELETE删除资源。

经过一番挖掘,我发现Spring文档确实对此进行了描述:http : //docs.spring.io/spring-
data/rest/docs/2.2.0.RELEASE/reference/html/#repository-resources.association-
resource



 类似资料:
  • 问题内容: 我正在尝试创建一个消息传递系统,其中消息的发送者和接收者可以是通用实体。对于发件人来说,这似乎很好,在该发件人中只有要引用的对象(GenericForeignKey),但我不知道如何为收件人进行处理(GenericManyToManyKey ??)。 下面是一个简化的示例。PersonClient和CompanyClient从Client继承属性,但具有其自己的特定详细信息。最后一行是

  • 问题内容: 我有三个表:应用程序,权限和applications_permissions 对于应用程序,有两类:免费和商业类(价格=‘0’和价格!=‘0’) 现在,我想为每个许可都知道有多少百分比的应用程序引用了它。而这两个类别 自由: 商业的: 我已经计算出以下查询,但其中不包含没有应用程序的权限ID:/ 我该怎么做呢?我已经尝试了几个小时了(该查询,其他联接),但这使我难以捉摸:/ 问题答案:

  • 问题内容: 这是我当前模型的简化示例(我正在使用Flask SQLAlchemy扩展): 我正在尝试按喜欢的次数订购。 这是我基本上想发出的查询: 我只是无法在SQLAlchemy方面进行任何工作。 感谢您提供任何帮助。 问题答案: 我没有使用SQLAlchemy,所以我想尝试一下。我没有尝试使用你的模型,我只是写了一些新模型(尽管足够类似): 你想要加入likes表格,用于func.count计

  • 问题内容: 我需要使用类别表过滤查询,该类别表与另一个表具有many2many关系。是否可以过滤与many2many关系的查询? 表具有与表相关的many2many字段,或者说伙伴可以具有许多类别。我需要的是过滤具有类别“业务”或“零售”的表。如果没有任何这些类别,则不应显示。 此外还有另外一个领域是,有关系有: 具有以下关系的字段: 到(many2many) 到(one2many) (字符) 具

  • 我还想知道如何定义每个模型上的关系--你是否需要或者是否可以只在用户上定义关系?

  • 我面临一个问题。。我在SpringBoot中与jpa有多对多关系,但我需要公开以下产品有很多标签,标签有很多产品 如果查询产品/1 if查询标签/1 什么是方法来暴露这与Rest与Spring启动?一个例子,网址或和想法这将是有用的。