程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> hibernate-Hibernate 語句執行順序問題

hibernate-Hibernate 語句執行順序問題

編輯:編程解疑
Hibernate 語句執行順序問題
代碼:
private static void editInfo() {
    Session session = null;
    try {
        session = HibernateUtil.getSession();
        if (session != null) {
            session.beginTransaction();
            Person p = new Person("王三", 22, "男", "北京");
            session.save(p);
            session.delete(p);
            p.setId(null);
            session.save(p);
            session.getTransaction().commit();
        }
    } catch (Exception ex) {
        if (session != null) {
            session.getTransaction().rollback();
        }
        ex.printStackTrace();
    } finally {
        HibernateUtil.CloseSession();
    }
}
控制台顯示:
Hibernate: 
insert 
into
    PERSON
    (NAME, AGE, GENDER, ADDRESS) 
values
    (?, ?, ?, ?)

Hibernate:
delete
from
PERSON
where
ID=?
Hibernate:
insert
into
PERSON
(NAME, AGE, GENDER, ADDRESS)
values
(?, ?, ?, ?)

按照Hibernate的規定執行應該是insert,insert,delete,但不知道為什麼這裡是insert,delete,insert,請各位大哥指教一下。

最佳回答:


數據庫執行sql時,遵循事務原則。按照你的程序執行順序就應該是save(insert)、delete、save(insert)呀。還有你的ID難道不是唯一的嗎?為什麼能設置為空很難理解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved