У меня проблема с сохранением сущности и получением идентификатора после того, как возникла ошибка.Я вижу, что данные были созданы в базе данных с правильным идентификатором, но идентификатор все еще нулевой для объекта.
Вот моя сущность:
@Entity
public class Bookmark {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String name;
@Column(nullable = false)
@Temporal(TemporalType.DATE)
private Date createdAt;
@ManyToOne
private Page page;
@ManyToOne
private Color color;
@ManyToOne
private User user;
...
..
А вот мойКод, в котором я создаю сущность:
//init bookmark from json basic data
Bookmark bookmark = new Bookmark(currentUser,page);
bookmark.setName(name);
bookmark.setColor(color);
//set User relationship for the bookmark
currentUser.getBookmarks().add(bookmark);
//save the altered entities
tx.begin();
em.merge(currentUser);
em.persist(bookmark);
tx.commit();
//Build the response
System.out.println("uriInfo:"+uriInfo+ "bookmark:"+bookmark);
URI bookmarkUri = uriInfo.getAbsolutePathBuilder().path(bookmark.getId().toString()).build();
В последней строке я получаю исключение нулевого указателя, потому что getId () приводит к нулю.Как я могу избежать этого?