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();

}

更令人困惑的是,我有另一个实体可以很好地使用保存或合并功能。我已经比较了很多次,我确信代码是好的。

请帮我解决这个问题。提前谢谢

如果你需要一些我正在使用的代码,我可以在这里发布。所以请告诉我你是否需要它。: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>
4

1 回答 1

0

我不确定是否有任何理由在事务中进行合并,因为没有其他任何事情发生,所以实际上这是一个单操作事务。

我建议您尝试刷新会话,看看是否有帮助:

sess.merge(b);
sess.flush();
于 2012-05-04T16:31:05.690 回答