Java 如何使用hibernate编写事务

Java 如何使用hibernate编写事务,java,hibernate,jpa,Java,Hibernate,Jpa,我需要写一笔交易。员工可以预订假期。但在此之后,我必须确保假期从他的假期账户中扣除:)这就是我需要交易的原因 所以我在hibernate 5中找到了这段代码。这似乎是最常用的方法 Transaction transObj = null; Session sessionObj = null; SessionFactory sessionFactory; try { sessionFactory = new Configu

我需要写一笔交易。员工可以预订假期。但在此之后,我必须确保假期从他的假期账户中扣除:)这就是我需要交易的原因

所以我在hibernate 5中找到了这段代码。这似乎是最常用的方法

Transaction transObj = null;
        Session sessionObj = null;
        SessionFactory sessionFactory;

        try {  
            sessionFactory = new Configuration().configure().buildSessionFactory();
            sessionObj = sessionFactory.openSession();
            transObj = sessionObj.beginTransaction();

        holidayDao.save(holiday);
        user.setVacationDays(user.getVacationDays() - holiday.getNumberOfDays());
        userDao.save(user);

        transObj.commit(); 

        }catch (Exception ex) {  
            ex.printStackTrace();  
            transObj.rollback();  
            }  
            finally {sessionObj.close();}  
我的项目相当大。到目前为止,我不必使用hibernate.cfg.xml文件。对于突然发生的事务,我需要使用一个。因此,我只想编写一个hibernate.cfg.xml,以便稍后处理事务。那我该怎么做呢。在hibernate中,除了有一个hibernate.cfg.xml文件外,没有其他方法可以使事务工作。谢谢你的帮助

所以我已经有了一个database.properties文件。(我用的是弹簧)

但是现在为了完成SessionFactory的工作,我将创建一个hibernate.cfg.xml文件 它的属性基本上与我的database.properties文件中的属性相同

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    </session-factory>
</hibernate-configuration>

org.hibernate.dialogue.mysqldialogue>
真的
com.mysql.jdbc.Driver

您好,您有什么问题?请在问题中包含您的测试代码。首先,我想知道这是您用java编写事务的方式。其次,我需要一个hibernate.cfg.xml文件。到目前为止我还不需要。那我应该放什么呢。记住,我只是想让sessionFactory工作。“对于事务,我突然需要使用一个。”-为什么,您遇到了什么问题?您展示的代码片段是一种通过HibernateAPI从普通Java代码手动创建会话和事务的方法。那么在这个过程中,对xml配置文件的需求从何而来呢?sessionFactory=newconfiguration().configure().buildSessionFactory();这给了我一个异常,并说它找不到hibernate.cfg.xml检查应用程序资源“hibernate.cfg.xml”是否在resources文件夹下。