java - 事务在 hibernate 4.3.6 中开始

标签 java hibernate

我是 hibernate 框架的新手。我正在使用 hibernate 4.3.6。我的模型类是

public class UserDetails{

     @Id
     private int userId;
     private String Name;

     public int getUserId() {
         return userId;
     }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getName() {
         return Name;
    }
    public void setName(String name) {
        Name = name;
    }   
}

以下是我的 hibernate 配置

<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost/GHAC</property>
    <property name="connection.username">root</property>
    <property name="connection.password"/>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">10</property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">update</property>

    <mapping class="org.ghac.uday.UserDetails"/>

</session-factory>

</hibernate-configuration>

我正在尝试使用以下代码在 hibernate 中存储记录

    UserDetails user = new UserDetails();
    user.setUserId(1);
    user.setName("Uday Kiran");

    Configuration configuration = new Configuration();
    configuration.configure();

    ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
            configuration.getProperties()).build();
    SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    Session session = sessionFactory.openSession();
        Transaction tx = session.getTransaction();
    session.save(user);
    tx.commit();
    session.close();

但是我总是收到以下错误。请建议我做错了什么?

Sep 04, 2014 9:32:11 AM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: HHH000126: Indexes: [primary]
Sep 04, 2014 9:32:11 AM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
 Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started
at
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:172)
 at org.ghac.uday.example.HibernateTest.main(HibernateTest.java:28)

最佳答案

您忘记开始交易:

Transaction tx = session.getTransaction();
tx.begin(); // Add this line

关于java - 事务在 hibernate 4.3.6 中开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657305/

相关文章:

java - Spring事务管理器和多线程

java - NavigationDrawer 与 fragment 或 Activity ?另外,请教我正确的 fragment 管理

java - Hibernate - 仅使用 id 设置 ManyToOne 列值,无需对象实例

java - Hibernate 是否可以通过一次选择获取两层集合?

Hibernate 映射资源位于单独的 jar 中

Java batik : ClassNotFoundException: org. apache.batik.dom.svg.SVGDOMImplementation

java - 为 Android 用颜色填充 ArrayList

java - 从 Dropwizard 应用程序日志中删除 hibernate 日志记录

mysql - hibernate - 如何使用 Criteria 在选择中进行选择

java - 计数循环和比较