问题标签 [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 投票
1 回答
1258 浏览

database - 如何使用 Maven 处理多个数据库模式创建脚本?

我有一个正在开发的应用程序,它支持多个数据库,包括 SQL*Server 2008、Oracle 10G、Oracle 11G、MYSQL 5 等。在 Maven 中我已经做了三件事:

1) 每个数据库都有一个配置文件,以便系统可以在构建期间将其用于集成测试。

2) Maven调用hibernate3插件,使用hbm2ddl自动生成schema脚本。

3) 建立一个 Hudson 矩阵构建,以便自动针对每个数据库运行集成测试。

我注意到(毫不奇怪)由 hbm2ddl 创建的脚本因数据库方言而异。

但是,在为客户打包系统时,我们必须手动进入各种 Hudson 构建并从那里提取数据库特定的脚本。一个乏味的过程,我相信会在最糟糕的时刻咬我们!!

无论如何,我们是否可以让 Maven 自动生成然后收集所有这些数据库脚本,以便可以将它们与我们发送给客户的 WAR 文件一起打包?我正在考虑使用 Maven 程序集插件将其全部压缩,但不确定!

0 投票
1 回答
1861 浏览

hibernate - 多个 JPA 持久性单元指向同一个数据库?

我们可以有多个 JPA 持久性单元指向同一个数据库,在不同的 Java 项目中并同时部署在服务器上吗?我的意思是同一时间,不是在同一秒部署,而是一起部署。我正在使用 hsqldb 数据库。

我的项目有一个客户端-服务器模型。我有一个统一的数据库表,服务器在其中填充数据,然后客户端在不同的项目中访问该数据。我可以通过服务器成功填充数据库。但是当我部署客户端项目时,数据库中的所有数据都会被删除。

我正在使用<property name="hibernate.hbm2ddl.auto" value="update" />两个持久性单元。

0 投票
1 回答
277 浏览

java - 如何使用休眠建议创建表

我对休眠技术比较陌生,并且想用它创建一个应用程序。我已阅读不建议在生产环境中使用“休眠的创建表”选项(hibernate.hbm2ddl.auto)。这是否意味着我需要创建第一个表,然后我的 POJO 类或此建议仅用于更新hbm2ddl.auto的值?

提前感谢!

0 投票
1 回答
1754 浏览

database - HBM2DDL——创建一个数据库视图而不是一个表?

全部,

是否有一些设置可以告诉 hbm2ddl 在生成数据库模式时运行视图创建语句而不是创建表?

我正在使用出色的 hbm2ddl 工具创建我的数据库模式,但我有一个问题。我需要将一些表展平为视图以帮助搜索数据库,而 hql 将是一个过于复杂的解决方案。我创建了指向这些视图的实体对象,以便通过休眠获取搜索结果。这一切都很好,直到使用 hbm2ddl。在一个空的数据库模式中,hbm2ddl 将基于 jpa 注释创建数据库模式,不幸的是,它还将我的视图创建为表。是否有一些设置可以告诉 hbm2ddl 运行视图创建语句而不是创建表?取而代之的是,有没有办法告诉 hbm2ddl 跳过实体的表创建(排除或其他)?

谢谢!

0 投票
3 回答
4215 浏览

java - 如何使用 HBM 映射创建两列唯一键约束?

我有一个休眠映射:

我希望休眠会为此映射在数据库上创建唯一约束。然而,没有发生类似的事情。

我究竟做错了什么?

0 投票
2 回答
7358 浏览

log4j - 运行 hibernate3:hbm2ddl 时出现 ClassNotFoundException javax.mail.internet.AddressException

所以我在使用 log4j 和 hbm2ddl 时遇到了问题。当我在我的 log4j.xml 中放置一个 SMTPAppender 时,我得到了这个 ClaasNotFoundException。

关于如何解决这个问题的任何提示?

这些是我的配置文件和堆栈跟踪:

堆栈跟踪:

log4j.xml

pom.xml

0 投票
5 回答
29390 浏览

java - 使用休眠更新数据库模式

我可以创建我的数据库模式,它会自动添加属性、约束、键等……但是更新数据库模式呢?如果我从我的实体中删除一些属性,hibernate 不会删除它,或者如果我更改了一些约束,hibernate 不会触及已经创建的约束...

那么,有没有办法让hibernate真正更新数据库模式呢?

谢谢。

0 投票
1 回答
575 浏览

.net - 为什么 hbm2ddl.SchemaExport 不在此处运行?

尝试在 NHibernate 2.1.2.4000 中使用 IInterceptor 我有以下测试代码:

然而。我不断收到消息:

失败:NHibernate.ADOException:无法执行查询 [SELECT count(*) as y0_ FROM "Person" this_] [SQL: SELECT count(*) as y0_ FROM "Person" this_] ---- System.Data.SQLite。 SQLiteException : SQLite 错误

模式导出似乎正在工作 - 为什么没有创建表?

我猜这与使用内存中的 sqllite 有关,但不确定问题是什么。有任何想法吗?

0 投票
1 回答
307 浏览

database - hbm2ddl.auto=update 是否不尊重不同的数据库用户,也许?

我们在hbm2ddl.auto设置为时遇到了奇怪的休眠行为update

在我们的测试设置中,我们有两个数据库用户,一个包含我们的 beta 应用程序的表,另一个主要用于开发。即具有不同用户的相同表名。当要创建新表时,我们使用hbm2ddl.auto=update.

现在突然奇怪的行为是:更新过程用错误的用户查找现有的表,并用正确的用户创建那些没有找到的表。

例如,如果存在以下表格

我们更新配置了三个表:TABLE_1, TABLE_2, TABLE_3使用 USER_B,我们最终得到

TABLE_1不是为USER_B. USER_A.TABLE_1重命名USER_A.TABLE_0并再次更新后,我们最终得到了预期的结果:

这对任何人都有意义吗?是否有类似内部休眠缓存的内容,例如“嘿,我已经在此服务器上创建了此表(并且我不关心用户)”。

我们进行了相当多的测试以确保这不是配置问题,在不同的机器上、不同的配置、从 ant 或使用 IDE 重现此问题,确保在构建目录的任何地方都找不到 USER_A 的密码等。所以我们是 100%当然,行为如所描述 - 但我们完全不知道会发生什么。

我很高兴听到您对此的想法,因为这个问题已经困扰了一段时间。

非常感谢,彼得

0 投票
1 回答
182 浏览

hibernate - 当模型和 EM 在不同的项目中时使用 hbm2ddl

我有一个本地创建的包含休眠注释实体的 jar 文件。我还有一个引用这个 jar 的单独项目。

我需要使用 hbm2ddl 创建一个 db 脚本,但遇到了一些困难。当我尝试使用 jar 文件的 build.xml 中的任务时,找不到持久性单元。当我尝试在 war 文件的 build.xml 中使用该任务时,根本找不到任何实体。

这必须是其他人正在做的事情——当实体和 EM 位于由单独的构建脚本构建的不同 Eclipse 项目中时,您如何创建 SQL?