问题标签 [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.
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文件
hibernate - 如何向 Hibernate hbm2ddl 输出添加自定义注释?
我很好奇是否可以在 hbm2ddl 输出生成的 sql 中添加 SQL 标头注释。
具体来说,如果我可以将生成的版本字符串添加到将输出到生成的 .sql 文件的方言对象中,那就太好了。
hibernate - 如何防止hbm2ddl导入init sqls?
前提:
- 我的类路径中有一个 import.sql 文件。
- 属性“hibernate.hbm2ddl.auto”设置为“create”。
那么,如何在不删除导入文件或修改“hibernate.hbm2ddl.auto”属性的情况下防止hbm2ddl导入init sqls?
java - 如何在 Liquibase 中模仿 Hibernate hbm2ddl“创建”行为?
我使用 liquibase 1.9.5 已经有一段时间了,并让它取代了 hibernate hbm2ddl 策略,即在其中创建表和加载固定装置。因为它是一个 maven 项目并且因为我使用 hsqldb(使用文件 create=true),所以我只需在目标文件夹中创建 db,以便在我测试应用程序的任何时候都有一个新的数据库。工作正常,直到我意识到:
1 我现在使用mysql数据库进行集成测试时需要重新创建数据库
2对于非 Maven 项目,我肯定需要相同的解决方案。
所以基本上我在使用 liquibase 而不是 hbm2ddl 时如何删除和创建数据库?
mysql - 告诉 Hibernate 的 hbm2ddl 为 @Enumerated 注释字段添加 MySQL 枚举列
我正在使用 hbm2ddl 创建一个 DB 表,其 Java 代码类似于以下内容:
它工作正常,但是对于“类型”,创建了一个 VARCHAR 列,即 DDL 代码如下所示:
但我想要的是这样的:
这是否可以在 Hibernate 中声明,首选注释?
或者有没有办法扩展 SchemaUpdate 并覆盖以我喜欢的方式呈现枚举字段的更改脚本部分的方法?
背景:项目的 PHP 部分使用了相同的数据库,我想防止插入无效值。
hibernate - 使用 Maven Hibernate3 插件生成模式
我正在尝试设置一个简单的 hibernate + maven 项目。我正在按照Java presistence with hibernate第 2 章中提到的步骤进行操作(只有差异是我使用 maven 而不是 Ant)。但是,在尝试使用maven hibernate 3 plugin生成模式时,似乎无法创建所需的表。
代码和资源
POM.xml
`
输出日志
我的主类的输出,它试图访问 MESSAGES 表(如书中所述)。
处理输出
流程类目标的输出
休眠配置
我的 hibernate.cfg.xml
java - Hibernates hbm2ddl.auto=validate 和 MySQL 文本类型的问题
我尝试在我继承的项目上启用 hbm2ddl.auto=validate 。我现在得到了很多错误的列类型异常,这些异常是用文本或中文本(MySQL 数据库)映射的字符串属性。
映射是:
数据库中的数据类型是“文本”(utf8_general_ci)。
我认为这应该是正确的映射,但 Hibernate 抱怨它找到了文本但期待长文本。
我检查了休眠配置,没有指定对话框。我已经添加
但这似乎没有什么区别。
我知道我可以将 columnDefinition="text" 添加到映射中,但我必须在很多地方这样做,恕我直言,映射应该已经正确了。那么出了什么问题呢?有任何想法吗?
谢谢
mysql - 在 Hibernate 中将 Java byte[] 映射到 MySQL binary(64)
我在将字节数组映射到 Hibernate 中的 MySQL 数据库时遇到了一些麻烦,我想知道我是否遗漏了一些明显的东西。我的班级大致是这样的:
该表在 MySQL 5.5 中是这样定义的:
Hibernate 3.6.2 的映射看起来与此类似:
我只使用 hbm2ddl 进行验证,当我部署应用程序时它给了我这个错误:
如果在映射中使用 type="binary" 不会导致 Hibernate 期望列的类型是二进制(而不是 tinyblob),我不知道会发生什么。我花了一些时间谷歌搜索,但找不到确切的错误。类似错误的解决方案是...
- 在 <property> 上指定“长度”。这改变了 Hibernate 期望的类型,但它总是某种类型的 blob,而不是它找到的“二进制”类型。
- 不要在 property 元素上声明“类型”,而是嵌套一个 column 元素并给它一个 sql-type 属性。那是可行的,但这也会使绑定特定于 MySQL,所以如果可能的话,我想避免它。
这个设置有什么突出的地方会导致这种不匹配吗?如果我指定 type="binary" 而不是 "blob",为什么 Hibernate 需要一个 blob 而不是二进制文件?
hibernate - 为与 ONE JPA 实体类相关的所有表生成创建脚本
我想为特定实体类生成创建表脚本。
我可以使用休眠(hbm2dll 工具)为我的所有类自动生成完整的脚本(自动从 JPA 注释的实体类生成数据模式)但我不知道如何过滤它,所以只有与一个实体类相关的部分遗迹。
问候,桂冠
java - 使用休眠映射布尔值
我遇到了休眠问题。我最近将我的 hbm2ddl 设置为验证,它一直在抱怨错误的数据类型。除了布尔值,我已经解决了所有问题。
我的班级中有一个字段opener
,映射为:
该列opener
是 a tinyint (4)
,值为 1 或 0。到目前为止,我已尝试更改类型,但无济于事。我还尝试在 hibernate.cfg 中使用以下设置:
但我仍然遇到同样的错误。我究竟做错了什么?
注意:我无权访问数据库。