В JPA я использую @GeneratedValue:
@TableGenerator(name = "idGenerator", table = "generator", pkColumnName = "Indecator" , valueColumnName = "value", pkColumnValue = "man")
@Entity
@Table(name="Man")
public class Man implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "idGenerator")
@Column(name="ID")
private long id;
public void setId(Long i) {
this.id=i;
}
public Long getId(){
return id;
}
}
Первоначально я установил для идентификатора какое-то произвольное значение (позже оно использовалось как условие проверки):
public class Sear {
public static void main(String[] args) throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("testID");
EntityManager em = emf.createEntityManager();
Man man = new Man();
man.setId(-1L);
try {
em.getTransaction().begin();
em.persist(man);
em.getTransaction().commit();
} catch (Exception e) { }
if(man.getId() == -1);
}
}
}
Какое ожидаемое значение man.id после выполнения commit ()? Должно ли это быть (-1), вновь сгенерированное значение или я должен ожидать исключения?
Я хочу использовать эту проверку для обнаружения любых исключений при сохранении.