Spring Data - элемент в базе данных, но не может быть найден entityManager - PullRequest
0 голосов
/ 19 марта 2020

У меня возникла проблема, когда объект не может быть найден, несмотря на то, что он присутствует в базе данных. Он создается другим сервисом через удаленный вызов процедур и сохраняется после вызова, но entityManager просто не может вернуть объект-сущность - вместо него возвращается null.

Я пытался вызвать entityManager.clear() раньше получить предмет, но это не помогло. Я также попробовал entityManager.refresh(entityManager.find(Item.class, itemId)) и получил только ошибку, поскольку метод find все равно возвращает ноль.

Пожалуйста, просветите меня - почему я не могу получить элемент из базы данных даже после очистки кэша постоянства?

@Transactional
class ItemService {

    @Autowired
    ItemCreationRPCService itemCreationRPCService;

    @PersistenceContext
    EntityManager entityManager;

    Item createItem(CreateItemRequest request) {
        Long itemId = itemCreationRPCService.create(request); // persisted and present in the database, returns id of created item
        Item item = entityManager.find(Item.class, itemId); // returns null
        return item;
    }
}
...