什么是jpa,java persistence api,是java提供的一套orm的接口规范,提供这套规范后,我们在使用jpa的实现时,都可以使用同样的api,不用为了不同厂商的实现不同而苦恼。
目前jpa的常用的实现有hibernate,eclipseLink,openjpa,docutte等等,他们都是jpa的实现。mybatis不是,因为mybatis不是orm框架,是sqlmap框架,所以mybatis没有实现jpa的接口,目前jpa使用mybatis的实现没有,只有在springside项目中江南白衣对jpa和mybatis初步的整合。
jpa1.0规范开始于2003年,2007年正式成行,而后hibernate对其进行了实现,而后其他的orm框架对jpa开始支持。而后开始pa2.0的规范,添加cache,validate等支持,jpa1.0是jsr220的规范,jpa2.0是jsr337的规范,目前hibernate4.0以上已经支持jpa2.0的规范。
jpa为何出现,03年正式hibernate出现没多久,为了脱离jdbc,不断的拼写sql,会耗费程序猿的精力,不能专注于业务,于是一些orm框架开始出现,但是不同的orm实现不同,在不同的orm进行切换又是很头疼的问题,所以jpa出现了,这样,我们可以在同一个项目使用相同的写法,但是实现不同的实现,比方说可以同时使用hibernate和eclipselink来进行开发