jpa entitymanager содержит всегда возвращает false - PullRequest
1 голос
/ 19 февраля 2011

У меня есть простой тестовый пример, в котором я сохраняю объект, а затем проверяю, присутствует ли этот объект в БД.но метод содержит всегда возвращает ложь.Объект сохраняется в базе данных

 User entity = new User();
    entity.setName("test");
    User result = ObjectManager.save(entity);

    boolean exists = ObjectManager.contains(result);

    assertTrue(exists);

@Override
public boolean contains(T obj) throws DataStoreException {
    try {
        return entityManager.contains(obj);
    } catch (Exception e) {
        throw new DataStoreException(e);
    }
}

1 Ответ

3 голосов
/ 20 февраля 2011

Согласно документации EntityManager :

Проверьте, является ли экземпляр управляемым экземпляр объекта, принадлежащий текущий контекст постоянства.

Так что он не проверяет, находится ли он в базе данных. Возможно, вы отключили объект в методе сохранения или каким-то другим образом не в текущем контексте постоянства.

Используйте команду find или get для проверки существования в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...