Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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
Java 冬眠不';无法创建已存在于其他数据库中的表_Java_Spring_Hibernate_Spring Data Jpa_Hibernate Mapping - Fatal编程技术网

Java 冬眠不';无法创建已存在于其他数据库中的表

Java 冬眠不';无法创建已存在于其他数据库中的表,java,spring,hibernate,spring-data-jpa,hibernate-mapping,Java,Spring,Hibernate,Spring Data Jpa,Hibernate Mapping,我有一个名为com.test.Student的bean实体,它使用xml映射到考勤数据库中名为“Student”的表。考勤数据库中的“学生”表尚不存在 在应用程序启动时,Hibernate没有在考勤数据库上创建“学生”表,即使属性Hibernate.hbm2dll.auto设置为“更新”。它也不会生成任何异常、警告或查询。它根本不起任何作用 经过一些测试,我意识到在另一个名为“sms”的数据库中已经存在一个student表。如果我将com.test.Student@实体映射到另一个表名(在任何数

我有一个名为
com.test.Student
的bean实体,它使用xml映射到考勤数据库中名为“Student”的表。考勤数据库中的“学生”表尚不存在

在应用程序启动时,Hibernate没有在考勤数据库上创建“学生”表,即使属性
Hibernate.hbm2dll.auto
设置为“更新”。它也不会生成任何异常、警告或查询。它根本不起任何作用

经过一些测试,我意识到在另一个名为“sms”的数据库中已经存在一个student表。如果我将
com.test.Student
@实体映射到另一个表名(在任何数据库中都不存在),Hibernate将使用此配置创建它

为什么Hibernate不在映射的数据库上创建“学生”表?另一个数据库中另一个同名表的存在是否会以某种方式造成干扰

一些信息:

  • 休眠版本:4.3.9
  • 春季版本:4.3.9
  • MySQL作为数据库
  • 爪哇8
  • 把上网本放在一边

如注释部分所述,如果由于架构之间的表名冲突,hibernate没有在ddl auto上创建表,则应明确声明:

@Table(name="attendance.student")
这样hibernate将正确地创建表。如果没有显式声明任何模式,它将公开查找具有相同名称的其他表,因此不会创建新表


看一看。如果您想了解有关hibernate在创建新表时的行为的更多详细信息,您应该使用更简洁的场景创建另一篇文章,以便我们进一步讨论。

将-spring.jpa.hibernate.ddl-auto设置为“create drop”您可以发布hibernate异常吗,或者它什么也不做?查找
student
table的大写版本,使用
SHOW TABLES
query.@Ajay_Kumar如果我将spring.jpa.hibernate.ddl-auto设置为“create drop”,那么一旦我关闭了我没有关闭的应用程序,我的数据就会丢失want@GabrielPimenta没有任何例外,是的,它不起任何作用。这对简单表有效,但当我在xml配置中将相同的解决方案添加到联接子类时,它就不起作用了。我是否缺少任何其他配置?请建议,如有任何帮助,将不胜感激。