gpt4 book ai didi

java - Jpa不刷新删除

转载 作者:行者123 更新时间:2023-12-01 10:47:47 24 4
gpt4 key购买 nike

我有以下代码:

@Transactional
public class DbCrudServiceImpl implements DbCrudService {

@Override
public void cleanupDb() {
...
serviceUserRepository.deleteAll(); //Spring data JPA repository for entity ServiceUser
serviceUserRepository.flush();
...

}

...
}

这是一个 Spring bean。

我在 Jpa 属性中将 hibernate.show_sql 设置为 true,并将 org.hibernate.event.internal.AbstractFlushingEventListener 的记录器设置为 调试以检查cleanupDb中发生的情况。

显示 cleanupDb 生成的日志行:

23:18:53.398 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:149 - ## Processing flush-time cascades
23:18:53.401 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:189 - ## Dirty checking collections
23:18:53.406 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:123 - ## Flushed: 0 insertions, 0 updates, 0 deletions to 8 objects
23:18:53.407 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:130 - ## Flushed: 0 (re)creations, 0 updates, 0 removals to 24 collections
Hibernate: select ... from SERVICE_USER ...
23:19:01.753 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:149 - ## Processing flush-time cascades
23:19:01.757 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:189 - ## Dirty checking collections
23:19:01.761 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:123 - ## Flushed: 0 insertions, 0 updates, 0 deletions to 8 objects
23:19:01.763 [main] DEBUG o.h.e.i.AbstractFlushingEventListener:130 - ## Flushed: 0 (re)creations, 0 updates, 0 removals to 24 collections

为什么没有删除语句?为什么没有被冲掉?

最佳答案

这可能是因为 Hibernate 遍历整个对象图,如果父对象尚未删除,它会取消子对象删除。

您可以通过将日志级别更改为 TRACE 来检查这一点,并查找来自 Hibernate 的以下消息:

取消安排实体删除

关于java - Jpa不刷新删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com