【MyEcplise hibernate tools】hibernate tools的使用以及錯誤,myecplisehibernate
1.點擊Myecplise右上角



2.點擊進入後,在這個區域右鍵 New 一個新的connection

3.以mySql連接為例子,在這裡展示一下,下面這幾項必須都要按照要求完全一致,除了架包所在的本地位置之外

4.配置完成可以點擊上圖的Test Driver,測試是否連接成功。連接成功的界面如下:

5.選擇本數據庫下的所有數據表或者你自己想要生成實體的數據表,點擊反向生成

6.此刻,如果在選擇的項目中沒有我們想要操作的項目,說明我們的項目此時還不支持hibernate,還不是hibernate項目,那我們需要先回到正常的myEcplise界面下,將我們的項目轉成hibernate項目


我們需要指定Hibernate的映射文件還有sessionFactory的包名,因為他們不能被創建在默認的包中,下面的提示很清楚


處理完成之後,我們的項目就支持hibernate了。這個時候我們就可以再進入到

這個界面下面接著進行我們的操作了。
7.我們 連接上我們的數據庫,然後,選擇所有的數據表,反向生成點擊:
然後進入這個界面,我們選擇如下:【我們采用注解的形式,就不選擇映射文件的方式了】



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