【MyEcplise hibernate tools】hibernate tools的使用以及错误-阿里云开发者社区

开发者社区> angel挤一挤> 正文

【MyEcplise hibernate tools】hibernate tools的使用以及错误

简介: 1.点击Myecplise右上角 2.点击进入后,在这个区域右键 New 一个新的connection 3.以mySql连接为例子,在这里展示一下,下面这几项必须都要按照要求完全一致,除了架包所在的本地位置之外 4.配置完成可以点击上图的Test Driver,测试是否连接成功。
+关注继续查看

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的关系存在于实体中!!】

 1 package com.it.entity;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 import javax.persistence.CascadeType;
 6 import javax.persistence.Column;
 7 import javax.persistence.Entity;
 8 import javax.persistence.FetchType;
 9 import javax.persistence.Id;
10 import javax.persistence.ManyToMany;
11 import javax.persistence.Table;
12 
13 /**
14  * Authority entity. @author MyEclipse Persistence Tools
15  */
16 @Entity
17 @Table(name = "authority", catalog = "testdb")
18 public class Authority implements java.io.Serializable {
19 
20     // Fields
21 
22     private String authorityId;
23     private String authorityName;
24     private Set<Role> roles = new HashSet<Role>(0);
25 
26     // Constructors
27 
28     /** default constructor */
29     public Authority() {
30     }
31 
32     /** minimal constructor */
33     public Authority(String authorityId) {
34         this.authorityId = authorityId;
35     }
36 
37     /** full constructor */
38     public Authority(String authorityId, String authorityName, Set<Role> roles) {
39         this.authorityId = authorityId;
40         this.authorityName = authorityName;
41         this.roles = roles;
42     }
43 
44     // Property accessors
45     @Id
46     @Column(name = "authorityId", unique = true, nullable = false, length = 36)
47     public String getAuthorityId() {
48         return this.authorityId;
49     }
50 
51     public void setAuthorityId(String authorityId) {
52         this.authorityId = authorityId;
53     }
54 
55     @Column(name = "authorityName", length = 50)
56     public String getAuthorityName() {
57         return this.authorityName;
58     }
59 
60     public void setAuthorityName(String authorityName) {
61         this.authorityName = authorityName;
62     }
63 
64     @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "authorities")
65     public Set<Role> getRoles() {
66         return this.roles;
67     }
68 
69     public void setRoles(Set<Role> roles) {
70         this.roles = roles;
71     }
72 
73 }
View Code

 

 

 

错误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类的问题

 

 

 

 



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Navicat for MySQL出现1030-Got error 28 from storage engine错误
Navicat for MySQL出现1030-Got error 28 from storage engine错误 刚刚还能用这会儿就用不了了,估计是磁盘空间不足引起的! 在根目录/下执行命令:df -h [root@localhost ~]# df -h Files...
1070 0
【spring 注解 错误】使用controller 作为后台给前台ajax交互数据出错
controller作为后台与前台的ajax进行交互,后台的方法处理完成返回一个boolean类型的值,想传给前台用来判断是否执行成功,BUT,问题来了: 1 严重: Servlet.service() for servlet rest threw exception 2 java.
695 0
[20180302]使用find命令小错误.txt
[20180302]使用find命令小错误.txt --//上午一台机器磁盘空间爆满,腾出磁盘空间顺便清理adump目录文件,再次遇到小问题.做一个记录. --//我使用find遇到的问题还不少,链接:http://blog.
910 0
SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况
首先创建数据库hncu,建立stud表格。 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varc...
966 0
中文命名之Hibernate 5演示 - 使用注解(annotation)而非xml定义映射
用一个简单例子演示Hibernate 5 + MySQL基本功能中使用中文命名标识符.
684 0
使用 Google Analytics 跟踪 JavaScript 错误
  Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语言环境支持。
652 0
JavaEE Hibernate使用
eclipse上安装插件Hibernate Tools, Help->Intall new Software->Add. 图1.png 其中 Name: HibernateTools Location: http://download.jboss.org/jbosstools/updates/stable/indigo/ 图2.png 选择JBoss Web and Java EE Development中的Hibernate Tools,点击Next,并安装。
763 0
+关注
angel挤一挤
【任何0基础都能看懂的步骤和解决方法!】
340
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载