【发布时间】:2021-09-22 15:54:21
【问题描述】:
我正在尝试在我的数据库中插入一行。我有以下 sql 设置(它只是一个例子):
表person:
(身份证,姓名)
表person_street:
(person_id, street_id)
表street
(身份证,姓名)
这应该是多对多的关系。这个例子没有意义,但我想你会理解这个想法。
现在我在 java 中有这些实体
@Entity
@Table(name = "person")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@JoinTable(
name = "person_street",
joinColumns = @JoinColumn(name = "person_id"),
inverseJoinColumns = @JoinColumn(name = "street_id")
)
@ManyToMany
private List<Street> streets;
}
这是处理我的个人对象的一个很好的解决方案(从我的数据库中读取它们之后)。 但是我在插入/创建人员对象时遇到了问题。
我想在我的前端创建一个新人。它使用String name, List<Long> streets 在我的后端调用一个REST 接口。
现在我想将这个新人(具有给定的名字和街道)插入我的数据库中。
但我不想在我的street 表上选择所有List<Long> streets。无需更改街道对象的任何值。我只想插入新人和现有街道之间的链接(在表中person_street)。
最简单的方法是什么? 我可以为此使用我的 Person 类,还是需要一个新的不同类。
T
【问题讨论】:
-
有很多方法可以做到这一点,但您认为哪种方法最简单?最省时间?最明白的?更短的那个?我不会放弃最简单的(从
street中选择),因为 JPA 足够快
标签: java sql spring-data-jpa