问题标签 [hibernate-tools]

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 投票
3 回答
32583 浏览

hibernate - 如何使用 maven 配置 hibernate-tools 以生成 hibernate.cfg.xml、*.hbm.xml、POJO 和 DAO

谁能告诉我如何强制 maven 在自动生成的带有包路径的 hibernate.cfg.xml 文件中映射 .hbm.xml 文件?

我的总体想法是,我想通过 maven 使用 hibernate-tools 为我的应用程序生成持久层。所以,我需要 hibernate.cfg.xml,然后是所有 my_table_names.hbm.xml,最后生成 POJO。然而,hbm2java目标不起作用,因为我将 *.hbm.xml 文件放入src/main/resources/package/path/文件夹中,但hbm2cfgxml仅通过表名指定映射文件,即:

所以最大的问题是:如何配置才能hbm2cfgxml使 hibernate.cfg.xml 如下所示:

我的 pom.xml 目前看起来像这样:

然后是第二个问题:有没有办法告诉 maven 在执行之前将资源复制到目标文件夹hbm2java?目前我正在使用

为此,但必须有更好的方法。

谢谢你的帮助。

更新:

@Pascal:感谢您的帮助。映射路径现在工作正常,但我不知道以前出了什么问题。在从它读取数据库配置时写入 hibernate.cfg.xml 可能存在一些问题(尽管文件已更新)。

我删除了 hibernate.cfg.xml 文件,将其替换为 database.properties 并运行目标hbm2cfgxmlhbm2hbmxml. 我也不再在这些目标中使用outputDirectory或。configurationfile

结果,文件hibernate.cfg.xml和所有文件*.hbm.xml都被生成到我的 target/hibernate3/generated-mappings/ 文件夹中,这是默认值。然后我hbm2java用以下内容更新了目标:

但后来我得到以下信息:

我该如何处理?当然我可以补充:

目标hbm2hbmxml,但我认为这不是最好的方法,或者是吗?有没有办法让所有生成的代码和资源远离src/文件夹?

我假设,这种方法的目标不是在我的 src/main/java 或 /resources 文件夹中生成任何源代码,而是将生成的代码保存在目标文件夹中。正如我普遍同意这个观点一样,我想继续最终执行hbm2dao和打包项目以用作业务层生成的持久层组件。这也是你的意思吗?

0 投票
6 回答
3664 浏览

eclipse - @SequenceGenerator -allocationSize,使用 Eclipse Hibernate 工具进行逆向工程

我使用 Eclipse Hibernate Tools 从我的 Oracle 数据库中创建带有 JPA 注释的域类。为了控制序列生成,我在 hibernate.reveng.xml 中添加了以下条目:

...
<primary-key>
<generator class="sequence">
<param name="sequence">SEQ_FOO_ID</param>
</generator>
</primary-key>
...

这导致以下注释:

@SequenceGenerator(name = "generator", sequenceName = "SEQ_FOO_ID")

但是我需要像这样设置“allocationSize”:

@SequenceGenerator(name = "generator", sequenceName = "SEQ_FOO_ID", allocationSize = 1)

是否可以在 hibernate.reveng.xml 中以某种方式设置它?

0 投票
2 回答
20881 浏览

hibernate - 如何配置 hbm2java 和 hbm2dao 以将包名添加到生成的类

我正在尝试hbm2java使用 maven 进行配置以生成 POJO 类和 DAO 对象。我正在处理的问题之一是未生成包名称。我为此使用以下pom:

然而,生成的代码以以下内容开头:

有没有办法强制 maven 生成packagename中定义的部分?

更新:

这是我的 hibernate.cfg.xml,也是由 hibernate-tools (hbm2cfgxml) 自动生成的:

0 投票
2 回答
6728 浏览

java - Hibernate 工具 - DAO 生成

我正在使用 eclipse hibernate 工具插件对我的数据库进行逆向工程。我花了一整天的时间寻找如何强制 DAO 生成器将 HQL/Criteria 与会话工厂、事务等一起使用。

现在,如果我的数据库中有表 TABLE,我将获得 DAO 类 TableHome。此类使用持久性 EntityManager。

我找到了使用旧版本的休眠工具生成 TableDAO 的教程,而这正是我所需要的。

非常感谢。

0 投票
4 回答
2249 浏览

java - 使用 Hibernate 生成服务层

我使用 Hibernate Tools 从 DB 模式生成.hbm.xml映射文件和文件。.java我的问题是,还有什么选项可以生成服务类吗?这些是我实现 store()、find()、delete() 等方法的类。我知道对于 C#,有很多解决方案可以生成几乎所有内容。我正在寻找相同的,但与休眠。有没有?

0 投票
1 回答
2273 浏览

eclipse - Hibernate 工具 Eclipse 类路径

如何在 Eclipse 中设置 Hibernate Tools 使用的类路径?

我尝试右键单击我的项目,转到属性,然后是 Java 构建路径,然后是库选项卡,然后添加适当的 JAR。但是,即使在我使用上述过程添加了 JAR 之后,Hibernate Tools 仍然会提供一个 classNotFound。

0 投票
1 回答
674 浏览

java - Eclipse Hibernate 工具在 DB 切换后不再工作

我正在使用带有 Eclipse 的休眠工具,它工作正常,直到我更改了我的数据库。我已经配置了新数据库,运行了测试用例,一切都很好,除了休眠工具。Hibernate 控制台不会从数据库中获取表,也不会抛出任何异常。我手动输入配置并通过单击测试连接,测试 ping 成功,但是在尝试创建新的 rev eng 文件时,仍然没有显示任何表格,请您帮忙吗?

0 投票
1 回答
1773 浏览

hibernate - HibernateToolTask​​ (hbm2hbmxml) 不会在 @org.hibernate.annotations.Index 注释的休眠映射中生成索引

我正在尝试使用休眠注释从 POJO 生成休眠映射。然后我想使用 liquibase 来生成数据库模式。所以我需要在我的 POJO 中定义索引。

示例 POJO:

但是当我在 ant 中运行 HibernateToolTask​​ 时:

我在映射中没有得到任何索引:

同时,当我做 hbm2ddl - 'create index' 生成:

如何让休眠在映射中生成索引?

更新:

我发现,liquibase 使用注释来生成模式,所以这部分问题得到了解决。我还有一个:

我想将现有数据库反向工程为 POJO。POJO 是从映射生成的,映射(使用 jdbcannotation-hbm2hbmxml 生成)没有任何索引。我相信这本质上是相同的问题:hbm2hbmxml 不生成索引。

更新 2:

为什么我需要那个?我有一个现有的数据库架构。我曾经更改它,然后对 POJO 进行逆向工程。现在我想使用 POJO 并通过注释生成映射和模式。

所以我想让 POJO 与当前数据库模式匹配以继续使用它们。显然,除了外键名称和索引之外的所有内容都是匹配的。但是 hbm2java 不会生成 @Index 注释。例如

此任务在 ddl 中生成索引,而不在 POJO 中生成索引。

0 投票
4 回答
5893 浏览

java - 如何更改 Hibernate Tools 逆向工程 DAO 类的名称?

所以我试图使用 Hibernate Tools 对我的数据库进行逆向工程,而我刚刚开始使用 Freemarker 模板来削弱它生成的代码。问题是我想更改它生成的 DAO 类的名称。默认情况下,DAO 类以 PersonH​​ome 的形式命名,但是为了将名称更改为 PersonDAO,我修改了 dao/daohome.ftl。

虽然这确实将生成的类名更改为 PersonDAO,但 java 文件仍称为 PersonH​​ome.java。

有没有地方我也可以更改生成的文件名以匹配源代码?

0 投票
2 回答
297 浏览

java - 使用 SQL 信息填充模式文档和代码注释 使用 Hibernate 工具?

我已经在 Eclipse 中设置了 Hibernate Tools,以根据现有数据库自动生成类。对于每个表,我都在 SQL Server 中记录了它们以及它们的每一列。有没有办法使用该文档信息来评论生成的类并填充模式实体文档?我看到可以将元标记放入 hbm.xml 映射文件中,但是由于每次我需要将它们重新添加或不断合并新更改时都会自动生成这些标记,而且我理想情况下喜欢让数据库成为“真实”信息,而不是将此类信息存储在映射文件中。有谁知道这是否可行,如果可以,该怎么做?谢谢...