2012-05-04 35 views
0

你好,我有一個Java Hibernate的問題, 我有一個實體叫'Barang',我有一個函數來創建新的Barang或更新它。 有時它可以正常工作,但是當我嘗試一遍又一遍地執行時,該功能不起作用。保存,合併有時不會提交?爲什麼?

這裏是我的代碼用於創建和合並:

static SessionFactory session = NewHibernateUtil.getSessionFactory(); 

public Session opennSession(){ 
    return session.openSession(); 
} 

public void addBarang(Barang b) { 
    Session sess = this.opennSession(); 
    org.hibernate.Transaction t = sess.beginTransaction(); 
    sess.save(b); 
    t.commit(); 

} 


public void updateBarang(Barang b) { 
    Session sess = this.opennSession(); 
    org.hibernate.Transaction t = sess.beginTransaction(); 
    sess.merge(b); 
    t.commit(); 

} 

是什麼使得它更加混亂是,我有工作用保存或合併功能完全正常的另一個實體。我已經比較了很多次,我確信代碼沒問題。

請幫我解決這個問題。 Thx提前

如果您需要一些代碼即時通訊使用,我可以在這裏發佈。 所以請告訴我,如果你需要它。 :d

這裏是我的hibernate.cfg

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD  3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/rumah</property> 
    <property name="hibernate.connection.username">admin</property> 
    <property name="hibernate.connection.password">admin</property> 
    <mapping class="entity.Pelanggan"/> 
    <mapping class="entity.Penjualan"/> 
    <mapping class="entity.PenjualanBarang"/> 
    <mapping class="entity.PenjualanBarangPK"/> 
    <mapping class="entity.Barang"/> 
    </session-factory> 
</hibernate-configuration> 

回答

0

我真的不知道是否有這樣做的事務中您的合併任何理由,因爲沒有什麼其他的發生,所以實際上它是一個單操作事務。

我建議你嘗試刷新您的會話,並看看是否有幫助:

sess.merge(b); 
sess.flush(); 
+0

嗨馬克西莫夫,THX的建議。 我嘗試使用flush(),但它沒有奏效。 D:無論如何:Thx: – radik

相關問題