讲师中心 微信公众号
AI工具推荐 视频效率加速

MyEclipse Hibernate逆向工程:从数据库表自动生成实体类与映射文件

浅雪吖_3631

浅雪吖_3631

发布时间:2026-06-30 19:50:31

|

440人浏览过

|

来源于php中文网

原创

MyEclipse中Hibernate Reverse Engineering不可用,首要原因是未切换至Hibernate视图(Window → Open Perspective → Other → Hibernate),且需确保项目已正确安装Hibernate Facet;功能入口位于DB Browser表右键的Generate Entities子菜单,非Java或Enterprise视图下可见。

myeclipse hibernate逆向工程:从数据库表自动生成实体类与映射文件

MyEclipse 2017+ 版本中 Hibernate Reverse Engineering 菜单项找不到

不是插件没装,而是视图没切对——这个功能只在 Hibernate 视图 下可用,Java 或 Enterprise 视图里右键根本不会出现 Hibernate Reverse Engineering 选项。

  • 必须先切换到 Hibernate 视图(Window → Open Perspective → Other → Hibernate)
  • 然后在 DB Browser 面板里展开你的数据库连接,选中具体表(支持多选),再右键
  • 如果仍不显示,检查项目是否已安装 Hibernate Facet:右键项目 → Configure Facets → 确认 Hibernate 已勾选并配置完成
  • MyEclipse 2019 起部分版本将该入口移至 DB Browser 表上右键的 Generate Entities 子菜单,而非顶层项

生成的 hbm.xml 文件没被自动注册进 hibernate.cfg.xml

MyEclipse 默认不自动更新主配置文件里的 <mapping> 元素,靠人工补漏容易遗漏,尤其表多时。

Eclipse IDE
Eclipse IDE

Eclipse IDE 是一款由 Eclipse 基金会管理的开源、跨平台集成开发环境。其核心基于 Java 构建,通过强大的插件架构可扩展支持 C/C++、Python、PHP 等多种编程语言。它提供丰富的代码编辑、调试和重构工具,并紧密集成 Git、Maven 等现代开发工具链,是全球众多开发者首选的 Java 开发利器。

下载
  • 反向工程向导第 2 步(“Hibernate Reverse Engineering” 对话框)中,务必勾选 Update Hibernate configuration file
  • 若勾选后仍无效,检查 hibernate.cfg.xml 文件路径是否为默认位置(src/hibernate.cfg.xml 或 src/main/resources/hibernate.cfg.xml);路径不对会导致写入失败但无报错
  • 生成后手动验证:打开 hibernate.cfg.xml,确认每张表对应一行 <mapping resource="com/example/User.hbm.xml"/>
  • 注意大小写和路径斜杠方向——Windows 下用 /,不是 \;包名与文件名需完全匹配

id 字段生成策略错配成 assigned 而非 native 或 identity

MySQL 的 AUTO_INCREMENT 主键或 Oracle 的序列,在反向工程中常被识别为手动赋值,导致插入失败或主键冲突。

  • 在反向工程向导第 3 步(“Table Selection & Configuration” 页面),双击目标表进入详细配置
  • 找到 ID generator 列,根据数据库类型选择:
    • MySQL:选 identity
    • PostgreSQL / HSQLDB:选 identity 或 sequence
    • Oracle:选 sequence,并在 Sequence name 栏填实际序列名(如 SEQ_USER_ID)
    • 通用兼容:选 native(Hibernate 自动适配)
  • 不改这里,生成的 <id> 段会是 <generator class="assigned"/>,运行时 save() 不触发自增
  • 生成后立即检查 User.hbm.xml 中的 <id name="id" type="long"><generator class="identity"/></id> 是否正确

实体类字段名与数据库列名大小写/下划线映射异常

比如数据库列 user_name 生成为 userName 是对的,但有时变成 username 或 user_Name,导致查询时 property not found 错误。

  • 根源在 hibernate.reveng.xml 的命名策略未生效,或 MyEclipse 忽略了它
  • 最稳妥做法:在反向工程前,手动创建 hibernate.reveng.xml 放在项目根目录或 src 下,内容包含:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-reverse-engineering PUBLIC
        "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd">
    <hibernate-reverse-engineering>
      <table-filter match-name=".*"/>
      <schema-selection match-schema="your_schema_name"/>
      <table name="user_info">
        <column name="user_name" property="userName"/>
      </table>
    </hibernate-reverse-engineering>
  • 向导中第 3 步点击 Next 前,确认 Use hibernate.reveng.xml if present 已勾选
  • 别依赖“自动驼峰”——MyEclipse 的转换逻辑简单粗暴,遇到 user_id_type 可能生成 userIdType 或 useridtype,必须显式声明
真正麻烦的从来不是点几下鼠标,而是生成后那几十个 .hbm.xml 文件里分散的 generator、property 和 mapping 配置——它们不会主动告诉你哪里错了,只会在第一次 session.save() 时突然抛出 IdentifierGenerationException 或 PropertyAccessException。

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
hibernate和mybatis有哪些区别
hibernate和mybatis有哪些区别

hibernate和mybatis的区别:1、实现方式;2、性能;3、对象管理的对比;4、缓存机制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

302

2024.02.23

Hibernate框架介绍
Hibernate框架介绍

本专题整合了hibernate框架相关内容,阅读专题下面的文章了解更多详细内容。

2513

2025.08.06

Java Hibernate框架
Java Hibernate框架

本专题聚焦 Java 主流 ORM 框架 Hibernate 的学习与应用,系统讲解对象关系映射、实体类与表映射、HQL 查询、事务管理、缓存机制与性能优化。通过电商平台、企业管理系统和博客项目等实战案例,帮助学员掌握 Hibernate 在持久层开发中的核心技能。

7180

2025.09.02

Hibernate框架搭建
Hibernate框架搭建

本专题整合了Hibernate框架用法,阅读专题下面的文章了解更多详细内容。

758

2025.10.14

MyEclipse工具使用教程
MyEclipse工具使用教程

PHP中文网推出MyEclipse开发工具完整使用教程专区,涵盖从安装配置、项目创建到代码调试与部署的全流程指南。无论是Java EE企业级开发还是PHP项目实战,这里提供一站式学习资源,助您快速掌握这款强大IDE,提升开发效率!

282

2026.06.26

MyEclipse使用问题解决方法大全
MyEclipse使用问题解决方法大全

PHP中文网MyEclipse专区,汇集启动报错、运行卡顿、数据库连接失败等常见开发难题。提供代码提示失效、中文乱码、内存溢出等问题的权威解决方案与优化技巧,助您快速排查故障,提升Java EE开发效率!

448

2026.06.26

MyEclipse安装教程与配置指南
MyEclipse安装教程与配置指南

PHP中文网MyEclipse专区提供全版本安装教程与配置指南,涵盖从环境搭建到插件扩展的完整流程。无论是新手入门还是进阶开发,都能在此获取权威、详细的实操指引,助您轻松掌握这款强大的Java EE集成开发环境,高效开启企业级应用开发之旅。

154

2026.06.26

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2665

2023.06.29

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

零基础精通 PS 视频教程
零基础精通 PS 视频教程

共268课时 | 119.8万人学习

前端工程师必备技能—PS切图
前端工程师必备技能—PS切图

共11课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn