问题标签 [hbm2ddl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
27142 浏览

hibernate - Hibernate 的值为“create”的“hbm2ddl.auto”属性不是重新创建表

我正在开发我的第一个简单的 Hibernate 应用程序。问题的关键是,我重命名了持久类的成员(对所有其他部分进行了适当的更改)并重新运行应用程序。由于 'hbm2ddl.auto' 属性在配置 xml 中被分配了 'create' 值,Hibernate 预计会在每次运行时创建新表,但它并没有这样做。以下是详细信息:

班级:

事件.hbm.xml:

hibernate.cfg.xml 等具有以下条目:

主要课程:

上面的代码按预期工作。只是为了测试“hbm2ddl.auto”属性,我已将 Event 类中的“title”成员更改为“title1”。并且,更新了 setter 和 getter 方法以及所有引用(在映射 xml、Event 和 EventManager 类中)。遵守没有错误。但是,当我尝试运行应用程序时,我看到以下异常:

线程“主”org.hibernate.exception.SQLGrammarException 中的异常:org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82) 中 org.hibernate 的“字段列表”中的未知列“event0_.title1”。 exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:110) 在 org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129) 在 org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java: 81)在 $Proxy6。executeQuery(Unknown Source) at org.hibernate.loader.Loader.getResultSet(Loader.java:1953) at org.hibernate.loader.Loader.doQuery(Loader.java:829) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections( Loader.java:289) 在 org.hibernate.loader.Loader.doList(Loader.java:2438) 在 org.hibernate.loader.Loader.doList(Loader.java:2424) 在 org.hibernate.loader.Loader.listIgnoreQueryCache (Loader.java:2254) 在 org.hibernate.loader.Loader.list(Loader.java:2249) 在 org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470) 在 org.hibernate.hql。 internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) 在 org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java: 1248)在组织。hibernate.internal.QueryImpl.list(QueryImpl.java:101) at org.hibernate.tutorial.hbm.EventManager.listEvents(EventManager.java:56) at org.hibernate.tutorial.hbm.EventManager.main(EventManager.java: 20) 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance( Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql .jdbc.Util.getInstance(Util.java:384) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054) 在 com。mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960) at com .mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2696) 在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2105) 在com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2264) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown来源)在 org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler 的 java.lang.reflect.Method.invoke(未知来源)。continueInvocation(AbstractStatementProxyHandler.java:122) ... 16 更多

错误指向以下行的 EventManager 类:

由于 'hbm2ddl.auto' 属性在配置 xml 中被分配了 'create' 值,Hibernate 预计会在每次运行时创建新表,但它并没有这样做。请帮助解决问题。

提前致谢。

0 投票
1 回答
1775 浏览

sql-server-2008 - 将 org.hibernate.dialect.SQLServer2008Dialect 与 hibernate3-maven-plugin 一起使用时出现不兼容的 API 错误

我之前已经将我的项目设置为使用 hibernate3-maven-plugin 和 org.hibernate.dialect.SQLServerDialect 作为 hibernate.dialect 并且一切正常。

但是当我把方言改成org.hibernate.dialect.SQLServer2005Dialect时,hibernate3-maven-plugin遇到如下错误:

执行 org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl: java.land.NoSuchMethodError: org.hibernate.dialect.SQLServer2005Dialect.registerColumnType(IJLjava/lang/String;)V 时遇到 API 不兼容

hbm2ddl 是否支持 SQLServer2005Dialect 或 SQLServer2008Dialect(我也遇到与 2008 相同的错误)?

我正在使用 2.2 版的插件和 hibernate.4.1.0.Final 和 JPA 2.0。

0 投票
1 回答
138 浏览

database - NHibernate IDataBaseSchema.GetTableMetadata 方法获取一个数据行。我怎样才能使用这种方法?

我正在尝试验证已创建表。我正在使用 SQLite 和 NHibernate。

如何正确使用此方法?

0 投票
1 回答
211 浏览

hibernate - 我对嵌入式 ID 使用哪些注释?

我想使用我拥有的三个 pojo,并使用 Hibernate 的能力在我的数据库中生成与它们匹配的表。这些类是电影、评分者和评分。这里是电影。评分者实际上是一回事,因为它也有一个与之相关的评分列表。

评分相差很大。我正在使用 EmbeddedId。这是我到目前为止所拥有的。

所以我问这个:使用这个嵌入式 id 设置需要什么特殊的注释?此外,哪个是 hbm2ddl 值的正确关键字?看起来我想使用“create”值,但阅读更多内容说它会导致 Hibernate 清空预先存在的表。我没看错吗?谢谢。

0 投票
2 回答
1078 浏览

hibernate - hbm2ddl 忽略 @Column 注释?

为什么 hbm2ddl 会忽略 @Column 注释?

这是我的课:-

hbm2dll 生成这个(sqlserver)表

方言是 org.hibernate.dialect.SQLServerDialect 奇怪的是,主键总是正确创建的?

0 投票
1 回答
1035 浏览

hbm2ddl - hibernate3:hbm2ddl 目标没有 jdbc 连接

我正在尝试为使用 hibernate-3.4.0.GA 的应用程序创建 ddl 脚本。这是我的 pom.xml

由于我使用的是hibernate 3.4.0-GA,整个项目都是基于注释的,所以我的项目中没有persistence.xml。hibernate.cfg.xml文件是这样的

现在当我运行 mvn hibernate3:hbm2ddl 我得到以下异常

谁能给我建议一个解决方案。自从过去两天以来,我一直在努力完成这项工作,这完全让我发疯。

感谢您阅读这篇文章,我感谢您的意见。

0 投票
2 回答
1861 浏览

grails - Grails hbm2ddl.SchemaUpdate 不成功错误

当我运行我的 grails 应用程序时,我收到 schemaUpdate 失败错误;

这是什么意思?是什么导致了这个错误?

0 投票
2 回答
774 浏览

java - 使用 Hibernate 4 生成 DDL

当您编写一个使用 Hibernate 的应用程序并从类开始定义模型时,您如何生成包含 DDL 的脚本来设置数据库?

我知道有一个 Hibernate 工具hbm2ddl可用于此目的,但我找不到最新版本的 Hibernate (4.1.6)。

此外,在开发人员指南 (v4.1.6) 中,我看到有一个名为SchemaExport用于从映射生成 DDL 的工具。

谢谢

0 投票
0 回答
3076 浏览

java - 为什么 Spring hbm2ddl.auto create 中的 JPA/HIbernate 会更新而不是破坏旧数据?

就像标题所说的那样,我有一个项目,spring+hibernate它只更新数据库。显然很多人都有同样的问题。所以我现在的问题是我有一个 import.sql 加载系统用户等是唯一的。在运行程序之前手动清理数据库有点烦人。是否有任何解决方法可以在重新创建数据之前清除数据。感谢我的 persistence.xml 和 context.xml 如下所示:JPAmy persistence.xml hbm2ddl.auto=create

0 投票
1 回答
4525 浏览

hibernate - 休眠:hbm2ddl 反转列顺序

我让 hbm2ddl 为我创建表(出于开发目的),并且列与类中的字段顺序相反。

我怎样才能让它以与类相同的顺序创建列?

我认为 Java 类不存储字段的顺序,所以 Hibernate 根本不知道源代码中的顺序是什么(如果我考虑更复杂的情况,这似乎是合乎逻辑的)。

但是,我至少可以要求 Hibernate 将 PK 和 FK 列作为第一列吗?

休眠 4.0.0 (JBoss AS 7.1.2) MySQL 5.1.x