当前位置: 首页 > 面试题库 >

如何验证针对数据库的Hibernate映射

雷晋
2023-03-14
问题内容

如何检查Hibernate映射配置是否与数据库匹配?我想知道在开始执行更新和查询之前是否使用了错误版本的hibernate映射,否则将失败。

我有一堆已经用Hibernate注释映射的类。我也有到相应数据库的连接。现在,我想检查Hibernate映射是否与数据库匹配。

我想至少检查以下几件事:

  • Hibernate配置中的所有映射表在数据库中都有对应的对象(例如表或视图)
  • 所有映射的字段都存在于数据库中
  • 所有映射的字段都具有正确的类型

我希望我不必对映射表执行查询,最好是检查仅基于数据库元数据。


问题答案:

从Hibernate配置文档:

hibernate.hbm2ddl.auto

创建SessionFactory时,自动将架构DDL验证或导出到数据库。使用create-
drop时,显式关闭SessionFactory时将删除数据库架构

例如验证| 更新| 创建| 创建放置

因此,您可以将其设置为validate,它将验证数据库中是否存在hibernate映射中的所有内容。如果将其设置为update,则每次添加映射的类或属性时,基础数据库模式都会更新以反映该更改。

您还有一个命令行工具-SchemaUpdate



 类似资料:
  • 问题内容: 我正在实现一个JAX-WS Web服务,它将由外部Java和PHP客户端使用。 客户端必须使用每个客户端存储在数据库中的用户名和密码进行身份验证。 最好使用哪种身份验证机制来确保杂项客户端可以使用它? 问题答案: 基本WS- Security可以与插入JAAS的Java和PHP客户端(以及其他客户端)一起使用,以提供数据库后端。如何实现这种依赖于您的容器。使用@RolesAllowed

  • 主要内容:验证数据库是否具有限制性,配置数据库管理器和数据库,数据库配置参数运行 命令后,可以使用以下命令检查是否已创建数据库: 验证数据库是否具有限制性 通过使用上述命令,只能检查数据库列表。无法确定数据库是限制性的还是非限制性的。 使用以下命令检查数据库是否具有限制性。 语法: 示例: 假设要检查 数据库是否是限制性数据库: 得到类似以下结果: 可以看到它不是限制性的。现在检查是否是限制性数据库: 得到类似以下结果: 可以看到 是限制性数据库。 配置数据库管理器和数据

  • 问题内容: 我需要使用给定的XSD文件验证XML文件。我只需要如果验证正常就返回true,否则返回false的方法。 问题答案: 仅返回true或false(也不需要任何外部库):

  • 问题内容: 我有工作,并为我解编和编组XML转换为Java对象,反之亦然。现在,我试图根据我们的模式(test.xsd)来验证我们的XML。假设我的XML中缺少任何必填字段,那么我想根据模式test.xsd验证XML后知道哪个字段缺失。 如何根据test.xsd模式验证XML。我的test.xsd模式路径是- C:\ workspace \一\二\三\ src \ main \ java \ co

  • 我需要针对给定的XSD文件验证多个XML文件。问题是XSD由两个文件组成。它们是嵌套的,尽管我知道哪个是第一个(其他文件的“父”)。在XML文件中,我使用命名空间来定义子节点在哪个XSD中定义

  • A Table 对象可以被指示从数据库中已经存在的相应数据库架构对象加载关于其自身的信息。此过程称为 反射 。在最简单的情况下,您只需指定表名,即 MetaData 对象,而 autoload_with 参数:: >>> messages = Table('messages', meta, autoload_with=engine) >>> [c.name for c in messages.co