JPA - нет связи между моим объектом и базой данных - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь сохранить объект в базе данных postgres. После вызова persist я возвращаю свой объект, я изменяю свой объект, исследую объект (с помощью функции find моего менеджера сущностей), и данные остаются такими же (до модификации моего объекта).

Я полагаю, что после сохранения объект является ссылкой на базу данных, а модификация с установщиком автоматически сохраняется в базе данных

Я использую JPA2.1 с hibernate, wildfly 13. Я уже проверяю тезисы ответа:

В чем разница между persist () и merge () в JPA и Hibernate?

JPA EntityManager: зачем использовать persist () вместо merge ()?

У меня есть класс хранилища с менеджером сущностей:

@Transactional(TxType.SUPPORTS)
class testRepository{
   @PersistenceContext(unitName = "xxxPU")
   private EntityManager em;
   [...]

   @Transactional(TxType.REQUIRED)
   public Test create(@NotNull Test test) {
       em.persist(test);
       return test;
   }

   public Test find(@NotNull Long id) {
       return this.em.find(Test.class, id);
   }
   [...]
  }

И мой тестовый класс с следующим тестом:

    Test test = new Test(null, null, "12", "RUE DE LA PAIX", "75000", "PARIS", null);
    test= testRepository.create(test);

Я считаю, что на данный момент объектный тест является ссылкой на базу данных, но если я позвоню по этому коду:

  test.setAValue("93000");

И я ищу этот объект:

  Test testFind = testRepository.find(test.getId());

И сравните два объекта, у меня ошибка теста, потому что test.aValue = 75000 и testFind.aValue = 93000.

После установки, если я сделал вызов функции слияния, testFind.aValue имеет правильное значение.

Я не понимаю, почему мой объект не является ссылкой на мою базу данных после постоянного вызова.

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