一、 新建一个Spring +JPA工程
虽然STS也可以直接新建一个JPA工程,可直接使用JPA TOOLS,但有依赖的JAR没自动导入,因此最方便是直接使用spring Template Project
二、使用JPA TOOLS来自动生成代码
1、工程右键,转换为JPA 工程,(应该是STS的限制,一个通过STS转换后的JPA工程,在任意时刻只能连接一个数据源,虽然在此工程中我们可以对任意数据库的表都导到该工程内作为实体),这个我们一般就拿来作为JPA 导入表实体的一个辅助工程,正式工程不做转换,后续可以考虑按数据库分工程引用
转换之后,就可以使用JPA TOOLS来自动生成实体代码等,工程右键,如下
三、数据库关联
JPA视图,在数据源浏览器里增加需要关联的数据库
三、正式多数据源工程的配置等修改
在spring上下文管理文件中配置JPA的事务管理及数据库连接等,为了便于维护和查看,我们按数据库分配置文件再导入,如需要增加一个数据源,只需在db目录下增加一个该数据源的配置,结构如下
比如新增ZYERP数据库帐套及相关的信息,注意有些值是有引用关系,对应后面在JPA代码里标明EM和JPA配置文件persistenceUnit。下图为context_dbzyerp.xml的内容
在JPA的配置文件persistence.xml文件中增加一个persistence-unit
二、修改POM.XML,引用需要的包
1、 jdbc驱动
(oraclejdbc加入本地m2,参考http://agile-jason.iteye.com/blog/1430139)
2、 aspectJ相关包,工程运行AOP需要使用,否则会报BeanNotOfRequiredTypeException:***but was actually of type [$Proxy,原因是spring自身的aop是用JDK动态,我们的程序会使用基于类的代理,因此虽然pom.xml已经带有cglib,但没有引用aspectj的包,
另外context文件加上