一、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. python之异步IO

    协程的用武之地 并发量较大的系统和容易在IO方面出现瓶颈(磁盘IO,网络IO),采用多线程.多进程可以解决这个问题,当然线程.进程的切换时很消耗资源的.最好的解决方案是使用单线程方式解决并发IO问题- ...

  2. 九度OJ 1051:数字阶梯求和 (大数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6718 解决:2280 题目描述: 给定a和n,计算a+aa+aaa+a...a(n个a)的和. 输入: 测试数据有多组,输入a,n(1&l ...

  3. 1000个圆点与PaintDC的使用,OnSize时重画很棒

    import wx import random class View(wx.Panel): def __init__(self, parent): super(View, self).__init__ ...

  4. 题解 P3805 【【模板】manacher算法】

    题解 P3805 [[模板]manacher算法] 我们先看两个字符串: ABCCBA ABCDCBA 显然这两字符串是回文的 然而两个串的对称中心的特性不同,第一个串,它的对称中心在两个C中间,然而 ...

  5. WordPress升级出现Briefly unavailable for scheduled maintenance. Check back in a minute.

    WordPress升级出现Briefly unavailable for scheduled maintenance. Check back in a minute.   打开博客时提示: Brief ...

  6. terminal中 启动ios模拟器,并安装软件

    启动运行模拟器: xcrun instruments -w 'iPhone 6 Plus' 在已经启动好的模拟器中安装应用: xcrun simctl install booted Calculato ...

  7. long_query_time 设置不生效问题

    由于原来的慢查询日志太大了,有1G多,并且其中包含上一次查询优化前的慢sql,所以想收集最近两天的慢查询语句,故 mysql> show global variables like 'slow% ...

  8. css三角形实现的几种方法的区别

    演变: .triangle{ height: 30px; width: 30px; display: inline-block; border: 30px solid; border-color: # ...

  9. WebsiteCrawler

    看到网上不少py的爬虫功能极强大,可惜对py了解的不多,以前尝试过使用c# WebHttpRequert类来读取网站的html页面源码,然后通过正则表达式筛选出想要的结果,但现在的网站中,多数使用js ...

  10. js调试笔记

    js调试方法很多,今天总结一下最实用的的断点方法: debugger断点 这个很常见,但许多人不知道其实可以添加条件判断 if(something){debugger;} source断点 这个最为常 ...