Java 运行简单的Hibernate项目没有效果
我使用的是Postgres9.2,Hibernate4.3.0Final 我有Java 运行简单的Hibernate项目没有效果,java,hibernate,postgresql,Java,Hibernate,Postgresql,我使用的是Postgres9.2,Hibernate4.3.0Final 我有testClass: @Entity @Table(name="testClass") public class testClass implements Serializable { @Id @Column(name = "id") private Integer id; @Column(name="name") private String name; pub
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>
但是什么也没发生:(我正在我的PostgresDB中查找新表,但什么都没有
我错过了什么?你认为会发生什么 创建一个新的空实体,然后退出 您不必使用实体管理器(或在Hibernate术语中,
save()
将实体保存到会话中)来persist()
。因此,就数据库而言,它永远不存在。它与任何其他对象一样,只是一个普通的Java对象,在删除对它的最后一次引用时会被垃圾收集
您需要:
- 使用
Configuation
生成一个SessionFactory
并将SessionFactory
存储在可访问的位置。您不想一直创建它,它应该在启动时创建。容器管理的持久性和注入在这里很方便
- 从
SessionFactory
- 将新对象传递给
会话。保存(…)
,以便在正确生成密钥后在数据库中插入等
重新阅读Hibernate和/或JPA教程来介绍对象生命周期的基本知识可能是个好主意,尤其是
就个人而言,如果我在做基本的事情,我会使用JPA API来代替。PersistenceUnit
,EntityManager
,等等。请看。我想你什么都没做;只要打开它并阅读它,就可以从一开始就考虑一个包含所有正确细节的好问题。如果可以,我会+10。
[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