Hibernate逆向工程【PowerDesigner、idea环境下】
来源:互联网 发布:微信淘宝优惠群二维码 编辑:程序博客网 时间:2024/06/05 11:53
为什么要使用逆向工程
由于我们每次编写Hibernate的时候都需要写实体,写映射文件。而且Hibernate的映射文件也容易出错。而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了。
使用PowerDesigner
在设计数据库表时,我们使用PowerDesigner来生成概念模型\物理模型…
设计一个人员组织架构:有机构、部门、员工、领导、角色、权限。
- 一个机构有多个部门
- 一个部门有多个员工
- 领导可以管理多个部门,同时领导他自己也是员工
- 一个员工可以有多个角色
- 一个角色可以分配给多个人
- 人员角色分配后可以设置是否有效,分配时间等
- 一个角色有多个权限
概念模型:
在PowerDesigner中,箭头指向的方向永远是“一”的一方
生成物理模型:
最后生成物理模型是这样子的:
生成sql语句
我们可以单个生成,一个一个复制
也可以把整个物理模型的sql语句一起生成:
/*==============================================================*/ /* DBMS name: MySQL 5.0 */ /* Created on: 2017/6/5 20:22:52 */ /*==============================================================*/ drop table if exists person_role; drop table if exists t_company; drop table if exists t_dept; drop table if exists t_employee; drop table if exists t_person; drop table if exists t_privilege; drop table if exists t_role; drop table if exists t_role_privilege; /*==============================================================*/ /* Table: person_role */ /*==============================================================*/ create table person_role ( person_id varchar(32) not null, role_id varchar(32) not null, state varchar(32), primary key (person_id, role_id) ); /*==============================================================*/ /* Table: t_company */ /*==============================================================*/ create table t_company ( company_id varchar(32) not null, name varchar(32), primary key (company_id) ); /*==============================================================*/ /* Table: t_dept */ /*==============================================================*/ create table t_dept ( dept_id varchar(32) not null, company_id varchar(32) not null, name varchar(32), primary key (dept_id) ); /*==============================================================*/ /* Table: t_employee */ /*==============================================================*/ create table t_employee ( person_id varchar(32) not null, dept_id varchar(32), name varchar(32), employee_id varchar(32), primary key (person_id) ); /*==============================================================*/ /* Table: t_person */ /*==============================================================*/ create table t_person ( person_id varchar(32) not null, dept_id varchar(32) not null, name varchar(32), primary key (person_id) ); /*==============================================================*/ /* Table: t_privilege */ /*==============================================================*/ create table t_privilege ( privilege_id varchar(32) not null, name varchar(32), primary key (privilege_id) ); /*==============================================================*/ /* Table: t_role */ /*==============================================================*/ create table t_role ( role_id varchar(32) not null, name varchar(32), primary key (role_id) ); /*==============================================================*/ /* Table: t_role_privilege */ /*==============================================================*/ create table t_role_privilege ( role_id varchar(32) not null, privilege_id varchar(32) not null, primary key (role_id, privilege_id) ); alter table person_role add constraint FK_person_role foreign key (person_id) references t_person (person_id) on delete restrict on update restrict; alter table person_role add constraint FK_person_role2 foreign key (role_id) references t_role (role_id) on delete restrict on update restrict; alter table t_dept add constraint FK_companty_dept foreign key (company_id) references t_company (company_id) on delete restrict on update restrict; alter table t_employee add constraint FK_inherit foreign key (person_id) references t_person (person_id) on delete restrict on update restrict; alter table t_person add constraint FK_dept_person foreign key (dept_id) references t_dept (dept_id) on delete restrict on update restrict; alter table t_role_privilege add constraint FK_belong foreign key (role_id) references t_role (role_id) on delete restrict on update restrict; alter table t_role_privilege add constraint FK_own foreign key (privilege_id) references t_privilege (privilege_id) on delete restrict on update restrict;
在数据库生成八张表:
在Idea下使用Hibernate逆向工程
值得注意的是:Intellij idea下生成出来的映射文件是没有对应的关联关系的。也就是说:一对多或多对多的关系,它是不会帮你自动生成的【好像是这样子的】。。。因此,需要我们自己添加Set【如果需要】
更新,如果想要体现对应的关联关系的话,请参考该博文!
阅读全文
1 0
- Hibernate逆向工程【PowerDesigner、idea环境下】
- powerdesigner 逆向工程图片
- PowerDesigner正逆向工程
- Powerdesigner 逆向工程
- PowerDesigner正逆向工程
- PowerDesigner 15.1逆向工程
- PowerDesigner逆向工程
- PowerDesigner逆向工程
- PowerDesigner逆向工程
- PowerDesigner逆向工程
- PowerDesigner逆向工程
- PowerDesigner 逆向工程
- powerdesigner逆向工程+问题
- Powerdesigner逆向工程攻略
- powerDesigner逆向工程
- powerdesigner的逆向工程
- Powerdesigner逆向工程
- PowerDesigner 逆向工程
- 【C语言】判断素数函数
- A problem is easy
- Gradle学习——读懂Gradle语法
- Krpano学习:软件初识
- Spring事务(一)
- Hibernate逆向工程【PowerDesigner、idea环境下】
- Git 分支---3.3分支的管理---3.4利用分支进行开发的工作流程
- PHP会话控制总结
- 1225: C语言合法标识符
- CRLF 和 LF 的关系
- 坐在马桶上看算法:只有五行的Floyd最短路算法
- OpenGL学习脚印: 二维纹理映射(2D textures)
- 关键业务系统的JVM参数推荐
- 输出倒直角三角形