我的 Java Web 应用程序(Spring + JPA)中有以下情况:
- 我有将实体持久保存到数据库的方法
- 在持久实体之后,我调用
notify()
它正在唤醒另一个线程。 - 第二个线程正在处理我刚刚保留的实体。
所以结果我有:第二个线程查询一个新的持久实体,但它还没有。所以第二个线程更快地将查询发送到数据库,然后主线程将其持久化。如果我添加一些超时,它会完美运行。但这对我来说不是一个合适的解决方案。我想我可以用方法检查实体管理器contains()
。但我不确定它的效率如何。我对这个主题很陌生,所以我很高兴听到你的建议。
ps 我使用的是 Spring 框架,所以在一个事务中持久化并通知发生(标有 @Transactional 注释)。第二个线程没有任何 @Transactional 类。
谢谢,艾米丽。