2012-05-04 8 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

こんにちはmaksimov、ご提案のためのTHXを。 flush()を使ってみましたが、動作しませんでした。とにかく、 Thx:D – radik

関連する問題