如何使用 Hibernate 加载 HSQLDB 脚本
Posted
技术标签:
【中文标题】如何使用 Hibernate 加载 HSQLDB 脚本【英文标题】:How to load HSQLDB script with Hibernate 【发布时间】:2012-02-21 13:45:13 【问题描述】:我使用 LibreOffice Base 创建了简单的数据库,并使用 SCRIPT 命令将其导出。它只有一个带有“id”和名称的表格标签。我创建了相应的名为 Tag 的类,带有注释 @Entity,id 为 @Id。
我使用以下代码加载数据:
public static void main(String[] args)
Configuration configuration=new Configuration();
configuration.configure();
serviceRegistry=new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).buildServiceRegistry();
sessionFactory=configuration.buildSessionFactory(serviceRegistry);
session=sessionFactory.openSession();
session.beginTransaction();
tag=(Tag) session.get(Tag.class, 1);
session.close();
System.out.println(tag.getName());
运行这个我得到以下几行:
休眠:选择tag0_.id 作为id0_0_,tag0_.name 作为name0_0_ from Tag tag0_ where tag0_.id=?
和 NullPointerException。
在xml文件中我指定了要使用的文件“jdbc:hsqldb:file:testdb”,还添加了Tag作为映射类。我做错了什么??
【问题讨论】:
【参考方案1】:如果您使用 Hibernate+HSQLDB 进行测试,您可以将属性“hibernate.hbm2ddl.auto”设置为 "create" - 在这种情况下,hibernate 将自己创建所需的架构
hibernate.hbm2ddl.auto 自动验证或导出模式 DDL 创建 SessionFactory 时到数据库。使用创建删除, 当 SessionFactory 关闭时,数据库模式将被删除 明确的。
【讨论】:
以上是关于如何使用 Hibernate 加载 HSQLDB 脚本的主要内容,如果未能解决你的问题,请参考以下文章
如何在当前使用 HSQLDB 的 Spring 和 Hibernate 后台使用 MySQL
HSQLDB & Hibernate:如何自动创建数据库一次
应用程序结束后具有 Hibernate 的 HSQLDB 不保存记录