我想问你一个例子,我应该如何做下一件事:我有两个模型类,我们称它们为A类和B类,每个A类对象有一个B类对象。
我构建了一个react客户端和一个springboot java api,用于在mysql数据库中保存新的a类对象。
现在我必须照顾B类对象,理想的情况是将A类对象保存在db中,获得id,然后在另一个表中创建B类对象,具有与其对应的A类对象相同的id。
我可以很容易地做的是:在前端,调用api来保存类A对象,等待响应获得它的id,并再次调用另一个api来保存类B对象,但我认为这是有风险的,因为调用之间可能发生一些事情,类B对象可能最终不被保存。
你能建议我如何解决这个问题吗?
您应该了解hibernate的映射概念,如果您正在使用hibernate,请使用@OneToOne映射。你可以很容易地解决这个问题,一旦你应用映射,处理数据就会变得非常容易,因为hibernate处理这些东西,你也可以通过定义它的级联类型来配置映射的模型类的操作,你可以参考这个视频一对一映射来理解映射,尤其是一对一映射。
class A{
@OneToOne(cascade = CascadeType.All, fetch = FetchType.Eager)
@JoinColumn(name = "b_id")
private B b;
}
这是一个单向的关系,你也可以使它双向,根据您的应用程序的需要。
这可以通过一个类与另一个类的一对一关系来实现。
使用@OnetoOne注释。关于hibernate映射的更多信息,你也可以参考这个
还有,看看这个https://www.javatpoint.com/hibernate-one-to-one-example-using-annotation。