如何在 Spring Data Rest 应用程序中的实体之间创建引用

2024-01-25

我正在尝试使用 Spring Boot + Data Rest + JPA 构建简单的应用程序。
A 具有具有一对多关系的 Category 和 Book 实体:

<!-- language-all: java -->    
@Entity
public class Category {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "category")
    private Set<Book> books;

    ...getters & setters next...
}

and

@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;
    @ManyToOne
    private Category category;

    ...getters & setters next...
}

每个实体的简单存储库

@RepositoryRestResource
public interface BookRepository extends JpaRepository<Book, Long> {}

@RepositoryRestResource
public interface CategoryRepository extends JpaRepository<Category, Long> {}

及应用:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

应用程序成功启动,我可以创建书籍和类别。
Q.:我如何创建和删除它们之间的引用?

我尝试了这里描述的解决方案:在 Spring Data REST 中发布 @OneToMany 子资源关联 https://stackoverflow.com/questions/25311978/posting-a-onetomany-sub-resource-association-in-spring-data-rest- 对我不起作用:根据 PUT 请求“内容类型:文本/uri-列表”header 我有响应代码 204 并且数据库中没有任何更改。更深入地查看,我在日志中发现了以下调试消息:

s.w.s.m.m.a.RequestMappingHandlerMapping : 
Did not find handler method for [/categories/1/books]

此 url 仅适用于 GET 请求。

Q.:有什么想法我的配置有什么问题吗?

Thanks.


To create书籍(id:1)和类别(id:1)之间的关系:

  • 提出请求,
  • 媒体类型:文本/uri-列表,
  • data: http://localhost:8080/categories/1 http://localhost:8080/categories/1
  • 请求http://localhost:8080/books/1/类别 http://localhost:8080/books/1/category

卷曲示例:

curl -X PUT -H "Content-Type: text/uri-list" -d "http://localhost:8080/categories/1" http://localhost:8080/books/1/category

To remove这种关系只是对同一地址发出删除请求

卷曲示例:

curl -X DELETE http://localhost:8080/books/1/category

并回答您的第二个问题:您的配置看起来不错,我已经在您的代码上测试了这个示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spring Data Rest 应用程序中的实体之间创建引用 的相关文章

随机推荐

  • 构建 AOSP 并添加具有运行时权限的系统应用程序

    我在 Android 6 AOSP 上工作 我能够构建添加应用程序作为系统应用程序 但现在我想在这个系统应用程序上默认添加运行时权限 这样应用程序就可以启动而无需要求用户验证权限 你知道我该怎么做吗 谢谢你的帮助 如果您的应用程序具有特权
  • 为什么 getSelectedItem 返回 null?

    我刚刚学习 OOP 对这篇基本文章感到抱歉 我不知道为什么当我尝试获取所选项目的值时它返回 nullJComboBox public class AddEmployee extends javax swing JInternalFrame
  • 所见即所得与所见即所得

    在基于 Web 的应用程序中 哪一个更好 更理想 Edit 实际上我正在开发一个社区网站 所以用户的水平可能会有所不同 听说 WYSIWYG 编辑器存在 XSS 安全问题 我也不熟悉所见即所得编辑器及其功能 据我所知WYSIWYM 编辑器中
  • python-从json对象中选择唯一的键值

    我有一个json回复 data id 1 name Tom age 24 id 2 name Nick age 45 id 3 name Harry age 18 id 1 name Tom age 29 count 4 而且我要outpu
  • Heroku“psql:致命:剩余的连接插槽保留用于非复制超级用户连接”

    我正在 Heroku 上开发一个带有 Postgresql 后端的应用程序 当我尝试从 CLI 和在服务器上加载页面访问数据库时 我会定期收到此错误消息 psql FATAL remaining connection slots are r
  • 结构体作为 Go 映射中的键

    我正在研究使用结构作为 golang 映射中的键 该结构中的字段也应该是映射 这似乎与提供的文档相悖here http blog golang org go maps in action这表示只有具有可比较字段的结构 and 可以位于用作映
  • 什么是 weblogic.socket.Muxer?

    你们中有人了解 weblogic socket Muxer 在 WebLogic 8 1 中的用途吗 我经常在线程转储中看到类似于以下的堆栈跟踪 ExecuteThread 0 for queue weblogic socket Muxer
  • HttpContext.Current.User 始终为 null

    我有一个 WCF 服务 它有一个方法可以返回正在使用该服务的 Silverlight 客户端的 Windows 用户名 WCF 服务使用 basicHttpBinding 并将 TransportCredentialOnly 模式设置为 W
  • 与适用于 Mac 的三星智能电视 sdk 4.1 配合使用

    我有一个愚蠢的问题 我安装 2013 Samsung TV SDK 4 1 MacOS pkg 并下载 2013 Smart TV Emulator 4 1 VB zip 和虚拟盒的安装 ova 文件 所以我想终于一切都完成了 但不是 当我
  • 如何让 JTIdy 使 HTML 文档格式良好?

    我正在使用 JTidy v r938 我正在使用这段代码来尝试清理页面 final Tidy tidy new Tidy tidy setQuiet false tidy setShowWarnings true tidy setShowE
  • Rails 在集成测试中设计经过身份验证的路由

    我想测试应用程序中的每条路线 并了解到我应该在集成测试中执行此操作 在 ruby on Rails 中测试路线的位置 https stackoverflow com questions 5290245 where to test route
  • Python:如何在给定时间调用字典包含的可调用对象?

    我正在使用 python 中的字典对象 其中包含许多键 它们的一些关联值类型是可调用类型 就像是 dico key1 1 key2 cars key3
  • Spark Streaming:接收器故障后如何不重新启动接收器

    我们正在使用自定义 Spark 接收器 它从提供的 http 链接读取流数据 如果提供的http链接不正确 则接收失败 问题是spark会不断重启接收器 并且应用程序永远不会终止 问题是如果接收器失败 如何告诉 Spark 终止应用程序 这
  • DIV 水平和垂直居中[重复]

    这个问题在这里已经有答案了 有没有办法垂直和水平居中 DIV但是 这一点很重要 当窗口小于内容时 不会剪切内容 div 必须具有背景颜色以及宽度和高度 我总是使用绝对定位和负边距将 div 居中 如提供的示例中所示 但它有一个问题 就是把上
  • 按条件动态搜索

    我在用QueryDSL with Spring Data Jpa我想执行一些动态搜索 我遵循这个Answer https stackoverflow com a 23896303 3756879没关系BooleanBuilder但就我而言
  • 以编程方式打开和关闭 Chart.js 工具提示

    Chart js 2 2 1 知道如何触发当我将鼠标悬停在数据点上时运行的代码以及当我将鼠标移开时运行的代码吗 我需要以编程方式显示和隐藏图表的工具提示 openTip oChart datasetIndex pointIndex how
  • 如何在 Windows Powershell 中获取 Azure Active Directory 用户名?

    我正在尝试从 Windows 10 Azure Active Directory AAD 加入的计算机上的 Powershell 获取当前的 Windows 用户名和域 我已经尝试过以下提示这个问题 https stackoverflow
  • PHP 中 C++ 的虚函数相当于什么?

    Is it abstract function xxx 我刚刚做了一个测试 似乎表明私有方法也是虚拟的 class a private function test echo 1 class b extends a private funct
  • 转换后的数组中的第 K 个元素

    我在最近的采访中遇到了这个问题 给定一个数组A长度N 我们应该回答Q查询 查询表格如下 Given x and k 我们需要创建另一个数组B具有相同的长度使得B i A i x where 是异或运算符 对数组进行排序B按降序排列并返回B
  • 如何在 Spring Data Rest 应用程序中的实体之间创建引用

    我正在尝试使用 Spring Boot Data Rest JPA 构建简单的应用程序 A 具有具有一对多关系的 Category 和 Book 实体 Entity public class Category Id GeneratedVal