【发布时间】:2021-04-13 09:02:28
【问题描述】:
我需要在我的spring项目中更新person类中的person_id。代码部分如下。但是插入查询在存储库部分不起作用。需要一个一个作为参数发送吗?
public void save(){
List<Person> personList = service.findByAll();
for (Person person : personList) {
personRepository.getNextSequence(person);
}
}
@Repository
public interface PersonRepository extends JpaRepository<Person, Integer> {
@Modifying
@Query(value = "INSERT INTO PERSON(person_id,name) VALUES(PERSON_ID_SEQ.NEXTVAL,:person.name) ", nativeQuery = true)
public void getNextSequence( Person person);
}
【问题讨论】:
-
为什么?为什么不直接在
PersonRepository上调用save并让JPA 处理它。您目前正在使用 JPA 并正在努力解决它。 -
我正在用保存创建一条新记录,我想要更改现有记录的ID。
-
你正在做一个插入,它正在创建一条新记录。
-
对不起,我解释的不完整,旧的id信息将停止,我实际上需要创建一个新的id克隆。
-
然后新建一个人,复制数据(不带id)并调用save。
标签: java oracle spring-boot sql-insert