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

java - 用于映射 java.lang.Double 的 Hibernate 类型

我在 Hibernate .hbm.xml 文件中使用“double”,当我使用 Hibernate Tool 生成类时,我得到了具有原始类型 double 的类属性。我希望这个属性是 Java 包装类型 Double。我怎样才能做到这一点?如果我在我的课程中手动更改它,是否会给休眠带来任何问题?

谢谢

0 投票
1 回答
602 浏览

hibernate - 如何使用 hibernate.reveng.xml 更改自引用多对多集的名称?

我有一个在 Oracle 数据库上使用 Hibernate 的项目,其所有实体都是直接从 Hibernate 工具生成的,由 hibernate.reveng.xml 文件控制。

我有一个类使用中间表与自身具有多对多关系,如下所示:

在没有任何特定指令的情况下,Hibernate Tools 将自动生成一个如下所示的类:

由于在编码以确定哪个是父集,哪个是子集时这不是很有帮助,我想将它们重命名为“父母”和“孩子”。

我一直在编辑 hibernate.reveng.xml 以尝试强制它重命名该字段,但我找不到有效的东西。我不确定我是在 PERSON 表、PERSON_PERSON 表还是两者上指定更改,以及要更改哪些属性。

我习惯于手动设置这些类,但是在这个项目中我无法控制构建过程,所以我必须使用 Hibernate Tools 生成的内容,所以我真的只需要制作 Hibernate Tools 即可做我想做的。

0 投票
1 回答
977 浏览

eclipse - 我的休眠映射文件存在,找不到映射的可能原因是什么?

我动态生成了我的 hbms。现在,当我尝试在 Eclipse 中使用 HQL 编辑器时,出现以下错误:

Hibernate 动态 SQL 窗口:HQL 有效,但没有生成 SQL。您的配置很可能没有定义任何映射。

Hibernate 查询结果窗口:org.hibernate.hql.ast.QuerySyntaxException:系统未映射 [来自系统]。

我的 hql 内容如下:

来自 com.kevin.hibernate.Address

0 投票
1 回答
1800 浏览

java - 在休眠工具 hbm2ddl 中支持 @ElementCollection

我正在尝试将 jpa2 功能 @ElementCollection 用于我的实体中的字符串列表。我正在使用 hibernate3-maven-plugin 执行 hbm2ddl 任务。

但是,插件使用的休眠工具版本似乎不知道如何处理 @ElementCollection 注释,谁能给我指点我需要使用什么版本的休眠工具,这样就不是这样了。它应该只是指定正确版本的休眠工具的情况吗?

[INFO] 跟踪 org.hibernate.MappingException:无法确定类型:java.util.List,表:mystuff,列:[org.hibernate.mapping.Column(stuffs)]

谢谢

0 投票
2 回答
1140 浏览

hibernate - Hibernate 工具:如何生成基类?

我最近安装了 Eclipse Helios 和 Hibernate Tools 3.4.0.Beta1。

我一直在尝试从映射文件生成“基类”,但不知道该怎么做。假设我有一个名为 Individual.hbm.xml 的映射文件。我希望 Hibernate 工具生成 2 个 POJO: - 一个 BaseIndividual.java,其中包含构造函数和 getter/setter - 一个 Individual.java,我可以在其中添加“自定义”代码,当我重新生成 POJO 时不会删除该代码

我花了很多时间寻找信息,但从未找到实际的答案。如果有人可以提供帮助...在此先感谢

0 投票
1 回答
2028 浏览

java - 使用 maven-hibernate3 插件生成源代码


除了生成其他源文件之外,我还想为 DAO 类生成一个工厂类 - DAOFactory.java。我为此目的使用 hbmtemplate - 使用我自己的 *.ftl 文件。问题是(我理解正确)为数据库中的每个实体生成文件。是否可以只生成一次该文件?

我的 pom.xml 的一部分:

0 投票
1 回答
223 浏览

code-generation - Hibernate 工具生成类方法

我想知道在更新生成的 pojo 类时最好的方法是我应该手动还是使用休眠工具,有没有办法告诉休眠工具只更新特定的类而不影响其余的?

0 投票
1 回答
3228 浏览

java - 如何让 Hibernate 工具生成带有 toString、equals 和 hashcode 的 POJO?

Eclipse 的 Hibernate Tools 插件(版本 3.2.4)

大家好,
我正在使用该插件从我的 DB-Schema 对我的 POJO 和 DAO 进行逆向工程,并且由于某种原因,在 POJO 中没有创建 toString、equals 和 hashcode 方法。
我正在做的事情如下: 创建一个新的 JPA 项目。
配置它的 persistence.xml 文件如下:

创建了一个 hibernate.reveng.xml 文件以仅在我的目录中选择我的 dbo scehma。
然后创建一个类型为 JPA 的 Hibernate 控制台配置,并从 JPA 配置中获取连接,最后配置持久性单元。
使用 Hibernate Code Generation 配置创建一个新配置,其中我启用了“从 JDBC 连接反向工程”定义了输出目录、包和 reveng 文件。
此外,我检查了该选项卡中的所有复选框(使用自定义模板除外)。
在我使用的导出器选项卡中:
1. 使用 Java 5 语法。
2. 生成 EJB3 注释。
并使用“域代码”和“DAO 代码”导出器。
这很好用(在解决了 DTP 插件兼容性的一些问题之后)。
主要问题是我在 Pojo.ftl 中看到以下表达式:

在 PojoToString.ftl 我看到:

我在哪里可以设置这个属性?我希望我所有的 pojo 都需要 toString、equals 和 hashcode?

先感谢您

0 投票
1 回答
1096 浏览

sql-server - 使用 Hibernate 进行逆向工程检查约束和索引?

我的任务是从大型、遗留的 sql server 数据库对 Hibernate 映射进行逆向工程。数据库广泛使用检查约束(每个表几个)和索引,虽然我认为这些是 DBA 关注的问题,但我们需要将它们保存在 Hibernate 映射中。

使用 Hibernate Tools for Eclipse,我可以成功地将我们的表逆向工程为 .hbm.xml 文件;但是,不存在任何检查约束或索引。我知道可以手动将检查约束和索引直接添加到映射中,例如:

我们有数百个表和数千个索引/检查约束,因此手动将这些添加到反向工程映射中并不可行。

是否有可能让 Hibernate Tools 为我们吐出这些?如果是这样,怎么做?如果没有,任何人都可以推荐另一个可以做到这一点的工具吗?

0 投票
2 回答
4164 浏览

java - 逆向工程与休眠工具的多对一单向关联的问题


我在 Eclipse (Helios) 中使用 Hibernate 工具 3.40。我正在尝试使用 EJB3 样式(即 JPA2.0 注释)从我的数据库(MSSQL 2008)生成 POJO。
假设我有两个表AB其中有一个外键 from Ato B
默认情况下,这A会生成一个 POJOB作为成员(其“父级”)和一个 POJO作为成员(其“子级”)B。 我想知道如何控制 rev-eng 以便只创建关联的一侧(我有不同的用例,所以基本上所有三个选项对我来说都很重要)。Set<A>

我不想使用 hbm.xml 文件,因为我正在使用注释和 JPA2.0,但我可以在逆向工程过程中指定一些元数据以通过 hibernae.reveng.xml 休眠

我已经尝试配置foreign-key属性并在那里定义,exclude=true但这只为我提供了一个场景的一半答案。这生成了一个A带有 bPK int 成员的 POJO,这是可以容忍和可以理解的,但现在生成的 POJOB无法编译,因为one-to-many注释具有无效属性;由于不再具有 hibernate reveng 可以映射回的属性mappedby="unresolved"A

因此,我目前无法创建单向关联,我将不胜感激。