我正在用Hibernate开发一个简单的例子,在任何容器之外使用它.我正在使用Maven,因此配置了JBoss存储库(请参阅https://community.jboss.org/wiki/MavenGettingStarted-Users)并将以下依赖项添加到我的项目的POM中:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.0.CR1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.170</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后我继续配置Hibernate来使用像这样的H2数据库(文件hibernate.cfg.xml):
<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration xmlns="http://www.hibernate.org/xsd/hibernate-configuration">
<session-factory>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
最后,我为一个简单的联系人类创建了一个POJO,如下所示:
@Entity
public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Basic
private String name;
@Basic
private String email;
/* Getters and setters omitted for brevity. */
}
Run Code Online (Sandbox Code Playgroud)
最后,我创建了一个获取会话工厂,会话并最终持久化实体的类.代码如下:
ServiceRegistry registry = new ServiceRegistryBuilder().configure().buildServiceRegistry();
MetadataSources sources = new …Run Code Online (Sandbox Code Playgroud)