gpt4 book ai didi

java - 运行一个简单的 Hibernate 项目没有效果

转载 作者:搜寻专家 更新时间:2023-11-01 02:09:31 24 4
gpt4 key购买 nike

我正在使用 Postgres 9.2,hibernate 4.3.0 final。

我有testClass:

@Entity
@Table(name="testClass")

public class testClass implements Serializable {

@Id
@Column(name = "id")
private Integer id;

@Column(name="name")
private String name;

public Integer getId() {
return id;
}
}

从另一个类的方法创建:

try {
new Configuration().configure("/hibernate.cfg.xml");
new testClass();
} catch(Exception e) {
System.out.println(e);
}

这是我的 hibernate.xml.cfg:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="postgres">
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postgres</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hbm2ddl.auto">create</property>
<mapping class="testClass"/>

</session-factory>
</hibernate-configuration>

它在jboss服务器端执行:

[2014-01-06 05:59:01,592] Artifact server:ejb: Artifact is deployed successfully
17:59:22,880 INFO [org.hibernate.cfg.Configuration] configuring from resource: /hibernate.cfg.xml
17:59:22,881 INFO [org.hibernate.cfg.Configuration] Configuration resource: /hibernate.cfg.xml
17:59:22,889 INFO [org.hibernate.cfg.Configuration] Configured SessionFactory: postgres

但是什么也没有发生:(
我正在检查我的 PostgresDB 中的新表,但什么也没有。

我错过了什么?

最佳答案

你期望会发生什么?

您创建一个新的空实体,然后退出。

您不 persist() 具有实体管理器的实体(或者在 Hibernate 术语中,save()Session) .因此,就数据库而言,它永远不存在。它只是一个像其他任何对象一样的普通 Java 对象,并在删除对它的最后一个引用时被垃圾收集。

你需要:

  • 使用Configuation 生成SessionFactory 并将SessionFactory 存储在可访问的地方。您不想一直创建它,它应该在启动时创建。容器管理的持久化和注入(inject)在这里很方便。

  • SessionFactory

    获取一个Session
  • 将新对象传递给 Session.save(...),以便在正确生成 key 后将其INSERTed 到数据库中,等等。

重新阅读 Hibernate 和/或 JPA 教程以涵盖对象生命周期的基础知识可能是个好主意。 The Getting Started Guide可能是一个很好的起点,尤其是 the section on native Hibernate APIs .

不过,就我个人而言,如果我做一些基本的事情,我会改用 JPA API。 PersistenceUnitEntityManager 等。参见 Getting started with Hibernate and JPA .

关于java - 运行一个简单的 Hibernate 项目没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com