1.点击Myecplise右上角

2.点击进入后,在这个区域右键 New 一个新的connection

3.以mySql连接为例子,在这里展示一下,下面这几项必须都要按照要求完全一致,除了架包所在的本地位置之外

4.配置完成可以点击上图的Test Driver,测试是否连接成功。连接成功的界面如下:

5.选择本数据库下的所有数据表或者你自己想要生成实体的数据表,点击反向生成

6.此刻,如果在选择的项目中没有我们想要操作的项目,说明我们的项目此时还不支持hibernate,还不是hibernate项目,那我们需要先回到正常的myEcplise界面下,将我们的项目转成hibernate项目

我们需要指定Hibernate的映射文件还有sessionFactory的包名,因为他们不能被创建在默认的包中,下面的提示很清楚

处理完成之后,我们的项目就支持hibernate了。这个时候我们就可以再进入到

这个界面下面接着进行我们的操作了。

7.我们 连接上我们的数据库,然后,选择所有的数据表,反向生成点击:

然后进入这个界面,我们选择如下:【我们采用注解的形式,就不选择映射文件的方式了】

普通的ID生成就是下面这样,不用修改什么。

如果想要规定主键的生成策略,例如主键生成策略为uuid,则本页面可以如下【如果之前实体已经生成,不用怕,这个可以覆盖生成】:

8.然后回到正常的界面,查看项目结构,发现项目已经正常生成实体了

查看实体中的内容发现:不仅实体,实体与实体之间的关系也都正常的生成【我们是5个数据表,但是这个例子中有两个多对多生成的中间表,hibernate反向工程会自动的将这两个中间表变作ManyToMany的关系存在于实体中!!】

 package com.it.entity;

 import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table; /**
* Authority entity. @author MyEclipse Persistence Tools
*/
@Entity
@Table(name = "authority", catalog = "testdb")
public class Authority implements java.io.Serializable { // Fields private String authorityId;
private String authorityName;
private Set<Role> roles = new HashSet<Role>(0); // Constructors /** default constructor */
public Authority() {
} /** minimal constructor */
public Authority(String authorityId) {
this.authorityId = authorityId;
} /** full constructor */
public Authority(String authorityId, String authorityName, Set<Role> roles) {
this.authorityId = authorityId;
this.authorityName = authorityName;
this.roles = roles;
} // Property accessors
@Id
@Column(name = "authorityId", unique = true, nullable = false, length = 36)
public String getAuthorityId() {
return this.authorityId;
} public void setAuthorityId(String authorityId) {
this.authorityId = authorityId;
} @Column(name = "authorityName", length = 50)
public String getAuthorityName() {
return this.authorityName;
} public void setAuthorityName(String authorityName) {
this.authorityName = authorityName;
} @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "authorities")
public Set<Role> getRoles() {
return this.roles;
} public void setRoles(Set<Role> roles) {
this.roles = roles;
} }

错误1

 The last packet successfully received from the server was 0 milliseconds ago.
解决方法:
检查你的每一项的单词拼写是否有误,然后在URL上添加:?autoReconnect=true 例如下:
 错误2:
数据表之间有多对多的关系,然后应该是生成一张中间表就好,但是多生成一张ID表
如下图:

user表和testorder表生成一张中间表score

但是使用hibernate  反向生成tools后生成的实体如下:

多生成了一个ScoreId表

解决方法:

将本张表中的两个主键设置为一个主键 即可解决这个问题:

这样就解决了 会多生成一个ID类的问题



【MyEcplise hibernate tools】hibernate tools的使用以及错误的更多相关文章

  1. Hibernate之Hibernate环境搭建

    Hibernate之Hibernate环境搭建 一.Hibernate环境搭建的步骤 1.添加Hibernate && SQLServer 的Jar antlr-2.7.7.jar d ...

  2. 解决Maven工程中报 Missing artifact jdk.tools:jdk.tools:

    jdk.tools:jdk.tools是与JDK一起分发的一个JAR文件,可以如下方式加入到Maven项目中:<dependency>    <groupId>jdk.tool ...

  3. Maven报错: Missing artifact jdk.tools:jdk.tools:jar:1.7

    pom.xml 有小红叉,报错: Missing artifact jdk.tools:jdk.tools:jar:1.7 解决方法:(缺少一个jar包) http://blog.csdn.net/u ...

  4. Maven工程中报 Missing artifact jdk.tools:jdk.tools:

    jdk.tools:jdk.tools是与JDK一起分发的一个JAR文件,可以如下方式加入到Maven项目中:<dependency>    <groupId>jdk.tool ...

  5. 问题Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found解决方法

    问题Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not fo ...

  6. 【maven】解决Missing artifact jdk.tools:jdk.tools:jar:1.6

    解决在pom.xml文件中出现的Missing artifact jdk.tools:jdk.tools:jar:1.6问题, <dependency> <groupId>jd ...

  7. Hibernate笔记——Hibernate介绍和初次环境配置

    Hibernate简介 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate ...

  8. (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误

    (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误 在刚插入数据后,马上使用dao进行query ...

  9. org.hibernate.HibernateException: /hibernate.cfg.xml not found等三个问题

    初次配置hibernate在myeclipse上: 出现三个问题,怎么都不好使,比对代码,没有问题,查看路径还是没有问题: 1.org.hibernate.HibernateException: /h ...

  10. Maven pom.xml 报 Missing artifact jdk.tools:jdk.tools:jar:1.7

    linux中用eclipse 新建maven project,pom.xml中报Missing artifact jdk.tools:jdk.tools:jar:1.7 解决方法: 在pom.xml中 ...

随机推荐

  1. ACM/ICPC 之 Bellman Ford练习题(ZOJ1791(POJ1613))

    这道题稍复杂一些,需要掌握字符串输入的处理+限制了可以行走的时间. ZOJ1791(POJ1613)-Cave Raider //限制行走时间的最短路 //POJ1613-ZOJ1791 //Time ...

  2. WebRequest 获取网页乱码

    问题:在用WebRequest获取网页源码时得到的源码是乱码. 原因:1,编码不对 解决办法:设置对应编码 WebRequest request = WebRequest.Create(Url);We ...

  3. windows编程注意点(持续更新)

    1.windows编程中,所有的操作都放到窗口过程中进行,main函数只用于描述窗口基本信息. 2.用于获取设备环境句柄时,用BeginPaint/EndPaint,消耗cpu小,但占内存大;用Get ...

  4. AIX系统中安装Java6全过程(全部)

    ====================================================   From: GCG TSC pSeries <ibm800p@cn.ibm.com& ...

  5. 【编程题目】和为 n 连续正数序列

    51.和为 n 连续正数序列(数组).题目:输入一个正数 n,输出所有和为 n 连续正数序列.例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5. 4 ...

  6. 本地Yum

    1. mkdir xxx #新建文件夹 (新建一个挂载需要的文件夹) 2.配置本地yum源(挂载光盘) 3.进入 yum.repos.d 4.ls (查看当前文件夹全部的文件) 并 mv 修改   除 ...

  7. [SQL Server]如何快速查找使用了某个字段的所有存储过程

    [SQL Server]如何快速查找使用了某个字段的所有存储过程       当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我 ...

  8. August 15th 2016 Week 34th Monday

    Why not discovering as there is glorious faraway scenery? 远方有诗篇,何不去发现? An advertisement of Land Rove ...

  9. TCP/IP五层模型

    (2)TCP/IP五层模型的协议   应用层 传输层 网络层 数据链路层 物理层   物理层:中继器.集线器.还有我们通常说的双绞线也工作在物理层 数据链路层:网桥(现已很少使用).以太网交换机(二层 ...

  10. Xcode开发中的6个小技巧

    Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...