新公司用的SSH(springmvc)框架,看代碼的時候,發現沒有hbm.xml文件,全部使用的注解形式。在一次閑聊的時候問同事,這么多entity 寫起來不麻煩么。同事說根據數據庫自動生成的。於是我在網上搜索關於hibernate 自動生成實體的(我去年寫過一篇關於mybatis 自動生成dao的,感興趣的可以去翻一翻),最開始搜到的是hibernate-tool 工具,研究了半天還是不會用。本打算放棄了,今天遇到一個問題,需要將一個A表的數據插入的另一個B表里面,但是呢我又不想把B表清空(B表包含A表的字段) 。如果用代碼來實現,必定會涉及到相應的entity ,但是呢表里面有幾十個字段(建一個entity 要寫死人啊),今晚回來又谷歌了一下,終於發現一篇文章 Eclipse 通過JPA自動生成注解實體 試了一下,真的可以。記錄一下,以便以后自己翻閱。
環境:eclipse neon.2(貌似eclipse 3.5以上就可以了) MySQL(我上面給的鏈接用的是oracle)
1. 導入一個項目,或者自己新建一個項目。然后選擇項目右鍵Properties->Project Facets 勾選列表Project Facts 下JPA選項
2.
點擊Furhter configuration available
platform選擇Generic ,JPA implements Type選擇disable library configuration,因為已經把需要的jar文件放到WEB-INF下的lib目錄中。所以不用配置。再下面的connection這個是必須要配置的。
3.點擊 上圖的add Connection
然后就是完成,完成。
4.在右鍵屬性,就會看到jpa 工具
上面配置完成,在項目文件夾上右鍵選擇JPA tools->Generate Entities from Tables.后如下圖:
選擇建好的connection如果沒有connect 就connect一下。就會如上圖所示了(有時eclipse會有些小問題看不見表,可以重啟一下試試,實在不行就直接建個JPA project ,生成實體后再拷到自己的項目中就可以了。)選中要生成實體的表,Next如下圖:
上面是表之間的關系,如果可以做相應的修改(用的是ecipse 3.5貌似eclipse3.4還沒這個功能,eclipse越來越強了),再Next后如下圖:
(這個好像也是eclipse 3.5才加的)都能看明白吧。按照需要改改就可以了,這里不多啰嗦。再Next
后,如下圖:
這是一些表的每個屬性的調整,一般也不用調了。Finish就好了。