spring boot:如何在每次向客户机发出删除请求时将实体id重置回0

ax6ht2ek  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(537)

我使用JavaSpringBoot创建了一个服务器,并发出了一个删除请求,删除存储库中的所有条目。我试着把它加回去,id增加了,而不是从0开始。

@DeleteMapping("/donors")
public String deleteAllDOnors() {
    return donorService.deleteAllDonors();
}

@Id
@GeneratedValue
private Long id;

编辑。到目前为止,我在一个服务班上试过:

@PersistenceContext
EntityManager entityManager;

同班同学:

public String deleteAllDonors() {
    entityManager
            .createNativeQuery("ALTER TABLE SomeTable AUTO_INCREMENT = 1")
            .executeUpdate();
    donorRepository.deleteAll();
    return "All donors removed!";
}

我得到一个

javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:422) ~[hibernate-core-5.4.28.Final.jar:5.4.28.Final]
at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1668) ~[hibernate-core-5.4.28.Final.jar:5.4.28.Final]
hec6srdp

hec6srdp1#

不确定您使用的是什么持久层,但下面是一个jpa示例,说明如何重置它

entityManager
    .createNativeQuery("ALTER TABLE SomeTable AUTO_INCREMENT = 1")
    .executeUpdate();

相关问题