有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java保存、合并有时不提交?为什么?

你好,我对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

这是我的冬眠。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>

共 (1) 个答案

  1. # 1 楼答案

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

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

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