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
Hibernate自动模式生成和附加表_Hibernate_Schema - Fatal编程技术网

Hibernate自动模式生成和附加表

Hibernate自动模式生成和附加表,hibernate,schema,Hibernate,Schema,在我的jUnit测试中,hibernate创建模式,我有一个import.sql来插入测试数据。 Hibernate当然只会从JPA对象创建表。 我想在运行JUnit测试时创建一些额外的表。没有JPA对象的表 我试图将create语句放在import.sql中,但没有成功 您必须在hibernate配置文件中将import.sql文件的路径指定为hibernate.hbm2ddl.import_files属性?如果指定了此路径但仍然不起作用,请确保它引用的是import.sql文件的正确路径。我

在我的jUnit测试中,hibernate创建模式,我有一个import.sql来插入测试数据。 Hibernate当然只会从JPA对象创建表。 我想在运行JUnit测试时创建一些额外的表。没有JPA对象的表


我试图将create语句放在import.sql中,但没有成功

您必须在hibernate配置文件中将
import.sql
文件的路径指定为
hibernate.hbm2ddl.import_files
属性?如果指定了此路径但仍然不起作用,请确保它引用的是
import.sql
文件的正确路径。我想可能是打字错误之类的

编辑:

正如在文章中提到的:

仅当hbm2ddl.auto=create drop时,才会加载脚本。进口 在所有其他选项上忽略文件。请注意,只有一行 此文件中允许使用语句


在运行测试用例之前,最好只创建未映射到hibernate对象的所需表


如何执行import.sql?如果您在数据库级别具有所需的访问权限,则可以像hibernate那样从java创建表

import.sql由hibernate自动运行。这里我有测试数据的insert语句,它工作正常。。。执行所有insert语句。但是我的CREATETABLE语句不是。对不起,我一开始没有注意到。您只需在文件中指定DML语句(如insert、delete或update)。看起来你不能用它来创建一个新的表为什么你要为你的单元测试创建这些表?它们是临时的?这些表是原始表的历史记录表。我希望Junit测试一下。。验证数据是否在删除和更新操作时移动到历史记录表。是否尝试过?它仅用于单元测试db操作,允许您在每个测试用例或测试套件之前/之后插入/删除数据。也许能帮你或者给你一些想法