@Entity
public class Human {
@Id @GeneratedValue(strategy = GenerateType.AUTO)
int id;
String name;
}
@ManagedBean
@SessionScoped
public class PessoaFisicaBean {
Human human = new Human();
HumanDaoImp dao = new HumanDaoImp();
public void add() {
dao.add(human);
}
}
,如果我用這個,只在第一次工作,在第二會像合併,但我有堅持:休眠只需插入第一次
DaoIMP - >
public void add(Human human) {
entityManager.getTransaction().begin();
entityManager.persist(human);
entityManager.getTransaction().commit();
}
但如果我編輯managedbean這樣:
public void add() {
dao.add(human);
human = new Human();
}
它工作完美無瑕,但我將永遠無法「恢復」最後的插入,因爲壓腳提升的。新增乾淨了新的人,我無法理解爲什麼在堅持它不創建另一個ID,使用相同的=(
觀測數據:使用PostgreSQL OBS2:JSF + Hibernate的
我怎樣才能改變它,我每次點擊保存,它插入一個新的? – user3284660
我想我會解決它只是添加一個人類=新的人類();;我不知道如何解決沒有它 – user3284660
是的,這是正常的方式。另一種方法是使用[entityManager.detach](http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#detach(java.lang.Object)) – Stoneboy