我有一个名为com.test.学生
的bean实体,它使用xml映射到考勤数据库中名为“学生”的表。考勤数据库中的“学生”表还不存在。
尽管属性hibernate.hbm2dll.auto
被设置为“更新”,HiberNate并没有在应用程序启动时在考勤数据库上创建“学生”表。它也没有生成任何异常、警告或查询。它根本不做任何事情。
经过一些测试,我意识到在另一个名为“sms”的数据库中已经存在一个student表。如果我映射com。测验将Student
@实体转换为另一个表名(在任何数据库中都不存在),Hibernate将使用此配置创建它。
为什么HiberNate没有在映射的数据库上创建“学生”表?在另一个数据库中存在另一个同名表是否以某种方式干扰?
一些信息:
如注释部分所述,如果由于模式之间的表名冲突,Hibernate没有在ddl自动上创建表,您应该显式声明:
@Table(name="attendance.student")
这样hibernate将正确地创建表。如果没有显式声明任何模式,它将公开查找具有相同名称的其他表,因此不会创建新表。
看看这个错误描述。如果你想知道更多关于hibernate在创建新表时的行为的细节,你应该用一个更简洁的场景创建另一篇文章,这样我们可以进一步讨论它。
问题内容: 我有一个基本的Hibernate代码,我将属性“ hibernate.hbm2ddl.auto”设置为更新,因为它仍然无法在数据库中自动创建表。 这些是必需的文件: employee.hbm.xml liability.hbm.xml hibernate.cfg.xml 这是我尝试运行的Main.java: 这是我得到的错误: com.mysql.jdbc.exceptions.jdb
问题内容: 我正在使用,并且正在尝试运行一个简单的应用程序,尤其是运行在page中描述的应用程序。我的hibernate.cfg.xml文件是: 我(使用maven时)是: 我在链接中使用它: 但是,不可能获得应用程序的工作,即在数据库中hibernate创建表并插入值。无论尝试如何,我总是会收到相同的错误: 在线上的“关系部门不存在”: 我也没有完全相同的错误尝试过。为了抢占某些读者,请不要在数
你知道吗?也许有更好的办法?
使用H2, 如果数据库还不存在,则创建它。 但是,在Postgres中,不会创建不存在的数据库,因此会引发类似“DB不存在”的异常。有没有办法配置Postgres以按需创建不存在的数据库? 以下配置文件可用于重现此问题: 使用H2工作正常: 使用Postgres失败
我有两个pyspark数据帧 DF1 : df2: 我想向df1添加一个列Location_Id,从df2获取匹配的Id,如下所示: 我如何才能做到这一点?
问题内容: 是否可以使用其他数据库中的SELECT创建表(在我的开发数据库中)? 我想要类似的东西: 有没有执行此操作的语法,还是我需要首先创建一个数据库链接? 问题答案: 您必须首先创建一个数据链接 。 除非创建数据库链接,否则Oracle无法查询其他数据库。如前所述,如果存在数据库链接,则必须执行以下操作: