当前位置: 首页 > 知识库问答 >
问题:

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

曾明诚
2023-03-14
<!-- 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...
}
@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);
    }
}

应用程序开始成功,我可以创建书籍和类别。
问题:如何创建和删除它们之间的引用?

我尝试了这里描述的解决方案:在Spring Data REST中发布@onetomany子资源关联--对我不起作用:在带有“contenttype:text/uri-list”头的PUT请求上,我有响应代码204,数据库中没有任何变化。深入观察,我在日志中发现了以下调试消息:

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

此url仅用于GET请求。

共有1个答案

公孙宏远
2023-03-14

创建book(ID:1)和category(ID:1)之间的关系:

  • 放入请求,
  • 媒体类型:text/uri-list,
  • 数据:http://localhost:8080/categories/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
curl -X DELETE http://localhost:8080/books/1/category
 类似资料:
  • 下面是学习AzureKeyVault配置设置的说明 null 好的,所以我已经将应用程序的名称作为“企业应用程序”复制到Azure Active Directory中。我还为我刚刚创建的添加对象添加了Azure中的“get”和“list”的“访问策略”。然而,当我试图启动应用程序时,程序中出现了这样一个错误: 更新8-4-18好的,我发现Azure使用本地AppSettings.json中的'Cl

  • 我正在研究NFC应用程序。当我打开应用程序并从NFC标签读取信息时,活动打开哪个注册了意图过滤器,这将打开一个已经打开的应用程序的新实例。如何关闭应用程序的上一个实例或打开应用程序的上一个实例。 请帮帮我,抱歉英语不好。。提前谢谢。

  • 我想知道如何在启动时创建示例实体,以便在Spring Boot应用程序中测试我的前端。现在,我试图使用一个命令LineRunner,但我得到了这个错误: .... .... .... 这个错误有什么解决办法吗?或者用其他方法在数据库中创建样本(测试)实体?

  • 我需要在React中使用CORS节点模块,React是使用实用程序创建的。 由于它是一个实用程序,我不能调整内部并将CORS注入预配置的EXPRESS模块。 我们如何才能做到这一点?

  • 问题内容: 我想用实用程序方法创建一个类,例如 创建实用程序类的最佳方法是哪一种? 我应该使用私有构造函数吗? 我应该将实用程序类设为抽象类吗? 我应该什么都不做? 问题答案: 对于Java中完全无状态的实用程序类,我建议将该类声明为和,并具有一个私有构造函数以防止实例化。的关键字,可避免子类,并且可以在运行时提高工作效率。 该类应包含所有方法,并且不应声明(因为这意味着该类不是具体的,必须以某种

  • 问题内容: 您对创建单个实例应用程序有什么建议,以便一次只允许一个进程运行?文件锁,互斥锁还是什么? 问题答案: 一个好的方法是: 请注意,锁定使您可以忽略陈旧的pid文件(即,您不必删除它们)。当应用程序由于任何原因终止时,操作系统会为您释放文件锁。 Pid文件并不是非常有用,因为它们可能是过时的(该文件存在但该过程没有)。因此,可以锁定应用程序可执行文件本身,而不是创建和锁定pid文件。 一种