Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何根据数据库验证Hibernate映射_Database_Hibernate_Orm - Fatal编程技术网

Database 如何根据数据库验证Hibernate映射

Database 如何根据数据库验证Hibernate映射,database,hibernate,orm,Database,Hibernate,Orm,如何检查Hibernate映射配置是否与数据库匹配?在我开始执行更新和查询之前,我想知道我是否使用了错误版本的hibernate映射,这样就会失败 我有很多类已经用Hibernate注释进行了映射。我也有相应的数据库连接。现在我想检查Hibernate映射是否与数据库匹配 我想至少检查以下内容: Hibernate配置中的所有映射表在数据库中都有相应的对象(例如表或视图) 数据库中存在所有映射字段 所有映射字段的类型都正确 我希望我不必执行对映射表的查询,最好检查仅基于数据库元数据。来自:

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

我有很多类已经用Hibernate注释进行了映射。我也有相应的数据库连接。现在我想检查Hibernate映射是否与数据库匹配

我想至少检查以下内容:

  • Hibernate配置中的所有映射表在数据库中都有相应的对象(例如表或视图)
  • 数据库中存在所有映射字段
  • 所有映射字段的类型都正确
我希望我不必执行对映射表的查询,最好检查仅基于数据库元数据。

来自:

hibernate.hbm2ddl.auto

创建SessionFactory时自动验证架构DDL或将其导出到数据库。使用createdrop,当SessionFactory显式关闭时,数据库模式将被删除

e、 g.验证|更新|创建|创建删除

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


您还有一个命令行工具-

我正在寻找的类似工具。但API中是否有我可以通过编程执行的东西?您可以通过编程执行它。编写一个小程序,在打开“验证”的情况下创建SessionFactory。是的,有一个命令行工具-我将它添加到了我的答案中。或者最好按照达菲莫的建议去做。