问题标签 [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 回答
149 浏览

hibernate - 没有成员的列

使用 Hibernate,我们试图让它为抽象类创建一个额外的列——但我们不能向这个类添加一个新成员(大规模的内存消耗)。我们需要让 Hibernate 创建模式(开发阶段hibernate.hbm2ddl.auto=update)。

假设我们有一个MyClass实体类,其成员为 a,b,c,我们希望 Hibernate 也创建一个列d。此列在内存中不需要,只能在MyClass实例的保存/加载期间通过 HQL/SQL 访问。

这可以做到吗?

注释:
1. Hibernate 3.6.0 Final + Oracle 11g + 纯Java
2. 我们使用注解,没有xml文件

0 投票
1 回答
651 浏览

hibernate - 如何向 Hibernate hbm2ddl 输出添加自定义注释?

我很好奇是否可以在 hbm2ddl 输出生成的 sql 中添加 SQL 标头注释。

具体来说,如果我可以将生成的版本字符串添加到将输出到生成的 .sql 文件的方言对象中,那就太好了。

0 投票
1 回答
800 浏览

hibernate - 如何防止hbm2ddl导入init sqls?

前提:

  1. 我的类路径中有一个 import.sql 文件。
  2. 属性“hibernate.hbm2ddl.auto”设置为“create”。

那么,如何在删除导入文件或修改“hibernate.hbm2ddl.auto”属性的情况下防止hbm2ddl导入init sqls?

0 投票
1 回答
856 浏览

java - 如何在 Liquibase 中模仿 Hibernate hbm2ddl“创建”行为?

我使用 liquibase 1.9.5 已经有一段时间了,并让它取代了 hibernate hbm2ddl 策略,即在其中创建表和加载固定装置。因为它是一个 maven 项目并且因为我使用 hsqldb(使用文件 create=true),所以我只需在目标文件夹中创建 db,以便在我测试应用程序的任何时候都有一个新的数据库。工作正常,直到我意识到:

1 我现在使用mysql数据库进行集成测试时需要重新创建数据库

2对于非 Maven 项目,我肯定需要相同的解决方案。

所以基本上我在使用 liquibase 而不是 hbm2ddl 时如何删除和创建数据库?

0 投票
2 回答
1052 浏览

mysql - 告诉 Hibernate 的 hbm2ddl 为 @Enumerated 注释字段添加 MySQL 枚举列

我正在使用 hbm2ddl 创建一个 DB 表,其 Java 代码类似于以下内容:

它工作正常,但是对于“类型”,创建了一个 VARCHAR 列,即 DDL 代码如下所示:

但我想要的是这样的:

这是否可以在 Hibernate 中声明,首选注释?

或者有没有办法扩展 SchemaUpdate 并覆盖以我喜欢的方式呈现枚举字段的更改脚本部分的方法?

背景:项目的 PHP 部分使用了相同的数据库,我想防止插入无效值。

0 投票
1 回答
12765 浏览

hibernate - 使用 Maven Hibernate3 插件生成模式

我正在尝试设置一个简单的 hibernate + maven 项目。我正在按照Java presistence with hibernate第 2 章中提到的步骤进行操作(只有差异是我使用 maven 而不是 Ant)。但是,在尝试使用maven hibernate 3 plugin生成模式时,似乎无法创建所需的表。

代码和资源

POM.xml

`

输出日志

我的主类的输出,它试图访问 MESSAGES 表(如书中所述)。

处理输出

流程类目标的输出

休眠配置

我的 hibernate.cfg.xml

0 投票
1 回答
5960 浏览

java - Hibernates hbm2ddl.auto=validate 和 MySQL 文本类型的问题

我尝试在我继承的项目上启用 hbm2ddl.auto=validate 。我现在得到了很多错误的列类型异常,这些异常是用文本或中文本(MySQL 数据库)映射的字符串属性。

映射是:

数据库中的数据类型是“文本”(utf8_general_ci)。

我认为这应该是正确的映射,但 Hibernate 抱怨它找到了文本但期待长文本。

我检查了休眠配置,没有指定对话框。我已经添加

但这似乎没有什么区别。

我知道我可以将 columnDefinition="text" 添加到映射中,但我必须在很多地方这样做,恕我直言,映射应该已经正确了。那么出了什么问题呢?有任何想法吗?

谢谢

0 投票
3 回答
9939 浏览

mysql - 在 Hibernate 中将 Java byte[] 映射到 MySQL binary(64)

我在将字节数组映射到 Hibernate 中的 MySQL 数据库时遇到了一些麻烦,我想知道我是否遗漏了一些明显的东西。我的班级大致是这样的:

该表在 MySQL 5.5 中是这样定义的:

Hibernate 3.6.2 的映射看起来与此类似:

我只使用 hbm2ddl 进行验证,当我部署应用程序时它给了我这个错误:

如果在映射中使用 type="binary" 不会导致 Hibernate 期望列的类型是二进制(而不是 tinyblob),我不知道会发生什么。我花了一些时间谷歌搜索,但找不到确切的错误。类似错误的解决方案是...

  1. 在 <property> 上指定“长度”。这改变了 Hibernate 期望的类型,但它总是某种类型的 blob,而不是它找到的“二进制”类型。
  2. 不要在 property 元素上声明“类型”,而是嵌套一个 column 元素并给它一个 sql-type 属性。那是可行的,但这也会使绑定特定于 MySQL,所以如果可能的话,我想避免它。

这个设置有什么突出的地方会导致这种不匹配吗?如果我指定 type="binary" 而不是 "blob",为什么 Hibernate 需要一个 blob 而不是二进制文件?

0 投票
3 回答
1518 浏览

hibernate - 为与 ONE JPA 实体类相关的所有表生成创建脚本

我想为特定实体类生成创建表脚本。

我可以使用休眠(hbm2dll 工具)为我的所有类自动生成完整的脚本(自动从 JPA 注释的实体类生成数据模式)但我不知道如何过滤它,所以只有与一个实体类相关的部分遗迹。

问候,桂冠

0 投票
6 回答
37119 浏览

java - 使用休眠映射布尔值

我遇到了休眠问题。我最近将我的 hbm2ddl 设置为验证,它一直在抱怨错误的数据类型。除了布尔值,我已经解决了所有问题。

我的班级中有一个字段opener,映射为:

该列opener是 a tinyint (4),值为 1 或 0。到目前为止,我已尝试更改类型,但无济于事。我还尝试在 hibernate.cfg 中使用以下设置:

但我仍然遇到同样的错误。我究竟做错了什么?

注意:我无权访问数据库。