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

通过Spring data repository将数据保存到数据库

谷梁嘉运
2023-03-14

同样地,为需要存储数据的每个JPA实体创建单独的存储库类是否理想?或者有什么更好的方法可以在有限的存储库类的情况下将数据存储到数据库?

@Entity
@Table(name="Person")
public class Person implements Serializable{
...
...
@OneToMany(mappedBy = "person")
private List<Tour> tours;
...



@Entity
@Table(name = "Tour")
public class Tour implements Serializable{
...
...
@ManyToOne
@JoinColumn(name = "PERSON_ID")
private Person person;
...

共有1个答案

陈铭晨
2023-03-14

你有两个独立的实体。Person可以不存在Tour而存在Tour可以不存在Person。因此您应该有两个存储库-供Person和Tour独立存储其数据:

Tour tour1 = new Tour("tour1");
tourRepo.save(tour1);

Person person1 = new Person("person1");
person1.addTour(tour1);
personRepo.save(person1);

您选择了双向一对多关联,因此必须使用AddTour这样的“helper”方法来链接两个实体:

public Person addTour(Tour tour) {

    tour.setPerson(this);
    this.tours.add(tour);
    return this;
} 

附加信息:多对一和一对多关联映射的最佳实践

 类似资料:
  • 当我尝试保存最后一个项目时,我在列表视图中的每个项目都有按钮没有问题,但是当我尝试保存另一个项目时,它会多次保存数据 这是我的代码 公共覆盖视图GetView(int位置、视图转换视图、ViewGroup父级)

  • 我正在为我的大学创建一个Android项目,在那里我想用移动指纹传感器制作像指纹考勤系统这样的东西,所以实际上我想把生物特征数据保存到数据库中,以便在考勤时进一步参考。我想将指纹数据保存到移动指纹传感器SQL数据库中。

  • 问题内容: 基本上我想做的是,当用户将重点放在另一输入上时,将一个值从表单保存到sql数据库中。我想最好的方法是使用ajax。(希望如此!)这是我的代码: 剧本: 的HTML: 和StoreLocation.php代码: 当前,此代码仅将用户移至带有$ city变量的新URL,例如:www.example.com/london。 任何帮助都将是惊人的,因为我在这个问题上坚持了太长时间了:) 请求的

  • 这是使用电子邮件密码注册帐户的所有代码,保存验证电子邮件,将用户数据保存到Firestore数据库中。只有Firestore数据库无法运行。 else { Toast.makeText(register.this, “Error ! ” task.getException().getMessage(), Toast.LENGTH_SHORT).show();progressBar.setVisib

  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我有一个使用JPA的Spring Boot应用程序,它有两个数据源,一个用于DB2,一个用于SQL Server。 当我尝试将实体保存到SQL Server时,不会抛出任何错误,但该实体不会持久化到数据库。我看不到日志中正在生成插入。 提前感谢 下面是我尝试保存实体所执行的代码@组成部分 下面是sql Server配置。 这是SQL Server存储库 公共接口BeercupMessageLogR