当调用save(或saveAndFlush)代码时,我需要立即将一个实体持久(插入)到数据库中。

但是,尽管实体是在上下文中创建的,但它不会立即保留在数据库中。

我们正在使用Spring Boot。

public interface MessageRepository extends JpaRepository<MessageEntity, Long> {
}


在服务类中

@Service
public class TestService {

@Autowired
    private MessageRepository messageRepository;

@Transactional
        public MessageEntity saveMessage(MessageEntity entity) throws Exception {
            entity = messageRepository.saveAndFlush(entity);
            return entity;
        }
}


尽管创建了实体,但不会立即将其持久化/提交给数据库。

我们仅在Activiti任务中面临此问题。

任何反馈将不胜感激。

最佳答案

这工作了。

@Component
public class MessageRepositoryCustomImpl implements MessageRepositoryCustom {

    @PersistenceContext
    EntityManager entityManager;

    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public MessageEntity saveImmediate(MessageEntity entity) {
        entityManager.persist(entity);
        return entity;
    }
}

10-08 17:17