我有以下方法
@Transactional
void method()
{
// JPQL bulk insert goes here
// JPA criteria query to select results of bulk insert above
// returns nothing here
}
为什么JPA批量插入后JPA没有看到新记录?
答案 0 :(得分:1)
有很多种可能性。这是一些
在您的查询中,您通过调用其他组件(例如DAO)来执行此操作,其中查询方法被声明为具有新事务(例如REQUIRED_NEW)。正如在另一个txn中一样,在“外部”txn提交之前,您将无法看到更改。
您已启用二级缓存和查询缓存,因此查询只返回先前缓存的结果。
您获取实体管理器的方式可能存在问题,并且您正在使用两个绑定到不同txns的EM。
您的查询完全错误,因此返回空结果
为了帮助您进行调试,请尝试打开SQL跟踪(通过log4jdbc / JdbcDsLog等)并检查发给DB的实际语句是什么。