如何使用 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

如何为 Hibernate 设置 HSQLDB?

HSQLDB & Hibernate:如何自动创建数据库一次

应用程序结束后具有 Hibernate 的 HSQLDB 不保存记录

使用本机 SQL 创建表适用于 Hibernate/HSQLDB,插入失败。为啥?

如何在嵌入式模式下自动创建 hsqldb