2017-08-14 191 views
0

我創建了表ip並通過NetBeans 8.2上的嚮導創建了映射文件。 多數民衆贊成在IP架構: enter image description here休眠不保存對象

,並添加到休眠配置

<property name="connection.autocommit">true</property> 

,但是當我試圖插入一些表查詢不執行。 在其他桌子上工作。

Session session = HibernateUtil.getSessionFactory().openSession(); 
    Ip info = new Ip(); 
    info.setAsn("aaaa"); 
    info.setCity("aaaa"); 
    info.setCountry("aa"); 
    info.setIp(213213); 
    info.setIsp("aaaa"); 
    info.setLat(44.4); 
    info.setLon(55.5); 
    info.setOrg("aaaa"); 
    info.setRegion("aaaa"); 
    session.save(info); 

回答

0

您需要調用session.flush()

Autocommit它是關於將數據推送到數據庫而不調用save方法。

+0

非常感謝 – eska97

0

在休眠狀態下,只有包含在transacion中的操作纔會被髮送到數據庫。 所以正確的代碼是:

Session session = HibernateUtil.getSessionFactory().openSession(); 
Ip info = new Ip(); 
info.setAsn("aaaa"); 
info.setCity("aaaa"); 
info.setCountry("aa"); 
info.setIp(213213); 
info.setIsp("aaaa"); 
info.setLat(44.4); 
info.setLon(55.5); 
info.setOrg("aaaa"); 
info.setRegion("aaaa"); 
Transaction t = session.beginTransaction(); 
session.save(info); 
t.commit(); 

這樣做是hibernte將插入發送到數據庫,它不是立即(這是相當左右),以確保它被立即發送,你必須沖洗與session.flush()會議但這是一個加 希望這可以幫助 r。