Ответ 1
Во-первых, позвольте напомнить различные состояния сущности. Из спецификации JPA 1.0 (в разделе 3.2 Жизненный цикл экземпляров сущностей):
В этом разделе описывается Операции EntityManager для управления жизненный цикл экземпляров объекта. субъект может быть охарактеризован как новый, управляемый, отстраненный или удалены.
- Объект сущности new имеет отсутствие постоянной идентификации и еще не установлен связанные с контекстом персистентности.
- A управляемый экземпляр сущности - это экземпляр с постоянным идентификаторомкоторый в настоящее время связан с контекстом персистентности.
- A отсоединенный экземпляр сущности - это экземпляр с постоянным идентификатором(или не более), связанный с контекстом персистентности.
- Объект сущности удален - это экземпляр с постоянным идентификатором, связанный с контекстом персистентности, который планируется удалить из базы данных.
И графическая иллюстрация:
Итак, по определению, отдельный объект уже сохранен, и я действительно не думаю, что это ваш реальный вопрос. Теперь, если вы хотите узнать, является ли сущность новой (т.е. Не имеет постоянной идентификации), как насчет этого:
@Transient
public boolean isNew() {
return (this.id == null);
}