新公司用的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就好了。