Отдельный v / s переходный объект - PullRequest
0 голосов
/ 24 октября 2018

Я действительно запутался между отстраненной и преходящей сущностью.Согласно определению, временный объект не связан с сеансом и не имеет записи в БД.Отдельный объект связан с сеансом и имеет запись в БД.Так, напримересли у меня есть таблица Person.В таблице персонала есть запись с идентификатором 2. Поэтому, если я сделаю следующее:

Person p = new Person();
p.setId(2);

Будет ли объект p считаться отсоединенным, поскольку он имеет запись в БД, но не связан с сеансом?Или это будет считаться переходным?Если он временный, то является ли следующий код правильным примером создания отсоединенной сущности?

Person p = session.load(Person.class,2);
session.evict(p); // does this make the entity detached?

Я действительно не понимаю, какой из приведенных выше подходов создает отсоединенную сущность, поэтому любые идеи высоко ценятся!Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Позволяет быть правильным:

Когда объект управляемого объекта сериализуется, а затем десериализуется, десериализованный объект объекта (но не исходный сериализованный объект) создается как объект отдельного объекта, поскольку он не связанс любым EntityManager.

И полем временного объекта:

Поля временного объекта - это поля, которые не участвуют в постоянстве, и их значения никогда не сохраняются в базе данных (аналогичнопереходные поля в Java, которые не участвуют в сериализации).

Теперь вы можете завершить ответ на свои вопросы.

0 голосов
/ 24 октября 2018

Если мы выполняем session.evict(obj);, как показано ниже:

Person p = session.load(Person.class,2);
session.evict(p);

, тогда объект POJO выселяется или удаляется обратно из постоянного состояния в отключенное состояние. Таким образом, это состояние объекта POJO является отключенным состоянием.После этого GC (Garbage Collector) легко очищает этот объект.Итак

session.evict(p); // does this make the entity detached? Yes it is in detached state.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...