一、hibernate逆向工程生成实体

介绍一个模型设计工具PowerDesigner,这个是j2ee开发必要的一个工具。一般在开发中先使用PowerDesigner 创建实体关系图即概念模型。建立了概念模型后生成特定数据库类型的物理模型,然后根据物理模型的创建表脚本创建库表;最后使用MyEclipse的hibernate特性针对表逆向生成实体类和映射文件。这样免去了编写实体和映射文件及其实体关系的麻烦。

二、 设计概念模型

relationship  一般的实体关系都可以使用,如果实体之间的关系指定为多对多,那么在生成pdm时则自动会生成一个以2个实体主键联合起来作为联合主键的一张新的关系表

inheritance 实体之间的继承关系,如:员工——领导

association 关系,如角色与人员存在多对多关系叫做:人员角色,这个关系里面还可能有是否、状态等。

association link 用于连接实体和关系

link/extended dependency 实体或关系的额外信息,信息比较独立;不会产生主外键关系

例如;设计一个人员组织架构:有机构、部门、员工、领导、角色、权限。

一个机构有多个部门

一个部门有多个员工

领导可以管理多个部门,同时领导他自己也是员工

一个员工可以有多个角色

一个角色可以分配给多个人

人员角色分配后可以设置是否有效,分配时间等

一个角色有多个权限

在概念模型阶段直接转成物理模型后,转换后的物理模型可以根据项目实际情况再调整相关信息。

三、导出物理模型

在物理模型指定或修复主外键关系,一般情况下只需要制定主键的生成策略,外键关系会从概念模型中保留下来。如果对其自动生成外键关系不满意可以在物理模型中修改。在物理模型中的任何修改都会体现在SQL语句中,所以建表时直接复制其语句即可。

(四)物理模型 –生成库表

(五)逆向生成实体及映射文件

1、  添加hibernate facet到项目

右击项目——MyEclipse——Project Facets[compabilities]——install Hibernate facet)

2、  在MyEclipse中打开DB Browser视图:

在 Id Generator 中,如果是mysql 中需要自增的可选择native,如果是uuid的可选择uuid.hex或uuid

完成。在图中设置的对应的目录下则会生成实体和映射文件。

(十四)hibernate逆向工程的更多相关文章

  1. Hibernate(十四篇)

    (一)Hibernate简介 (二)hibernate配置管理 (三)Hibernate对象-关系映射文件 (四)Hibernate API详解 (五)Hibernate一级缓存 (六)Hiberna ...

  2. spring boot 常见三十四问

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  3. Spring Boot(十四):spring boot整合shiro-登录认证和权限管理

    Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...

  4. 开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/27068645   开发指南专题十四:J ...

  5. springboot(十四):springboot整合shiro-登录认证和权限管理(转)

    springboot(十四):springboot整合shiro-登录认证和权限管理 .embody{ padding:10px 10px 10px; margin:0 -20px; border-b ...

  6. 我的MYSQL学习心得(十四) 备份和恢复

    我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...

  7. 雅虎(yahoo)前端优化十四条军规

    第一条.尽可能的减少 HTTP 的请求数 (Make Fewer HTTP Requests ) http请求是要开销的,想办法减少请求数自然可以提高网页速度.常用的方法,合并css,js(将一个页面 ...

  8. Bootstrap<基础二十四> 缩略图

    Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...

  9. Bootstrap<基础十四> 按钮下拉菜单

    使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class=&qu ...

随机推荐

  1. C# WinForm退出方法

    1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit();  强制所有消息中 ...

  2. EasyPlayerPro RTMP播放器助力远程娃娃机直播抓娃娃技术方案

    远程娃娃机 目前市面上娃娃机的方案有很多种.核心的技术流程就是实现远程直播加上对娃娃机手臂的远程操作.其中最主要的技术还是视频直播方案,需要低延时,视频秒开等流媒体技术. 最简单的直播方案 视频直播方 ...

  3. Java使用到的常用类总结

    基本类型 常用:int.long.double.boolean. 不常用:byte.float.char.short

  4. java中的clone方法

    Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  5. PYTHON调用C接口(基于Ctypes)实现stein算法最大公约数的计算

    相关环境配置 mingw,选择相应的32位.64位的版本,主要用于编译动态链接库dll文件,可用vs替代,这里我选择轻量级的mingw windows64位地址:https://sourceforge ...

  6. Python的pymysql模块

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用MySQLDB. 1.基本语法 # 导入pymysql模块 import pymysql # 连接da ...

  7. [LeetCode] 698. Partition to K Equal Sum Subsets

    Problem Given an array of integers nums and a positive integer k, find whether it's possible to divi ...

  8. C++中输出 位宽和小数点后位数 的控制

    要用到这个头文件: <iomanip> setw(x) : 表示控制输出x的位宽 setprecision(x) :表示 控制输出小数点后 x 位 cout.precision(x): 表 ...

  9. BZOJ 3709 [PA2014]Bohater:贪心【反过来考虑】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3709 题意: 在一款电脑游戏中,你需要打败n只怪物(从1到n编号). 为了打败第i只怪物, ...

  10. 分享知识-快乐自己:Struts2中 获取 Request和Session

    目录结构: POM: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEnco ...