学完Hibernate以后突然对jpa产生了兴趣,经过一整天的不懈努力,感觉终于大体上对jpa有了一定的了解(当然我的理解还不过深入),在这里写下一点点自己的体会吧!jpa作为JavaEE5.0平台的标准的ORM规范,自然是值得我们去研究,但是至于为什么Hibernate已经很好的实现了它而我们却还要使用jpa的原因我就不清楚了.并且jpa算的上是Hibernate的一个子集,比如在索引、主键生成策略方面不如Hibernate的优秀.带着这样的疑惑,我开始接触了jpa
首先需要明确的是Jpa包括三个方面技术:
1、 ORM映射元数据,JPA支持XML与JDK5.0注释,元数据描述对象与表之间的映射关系,框架可以将实体对象持久化到数据库当中。
2、JPA持久化API,用来操作实体对象,执行curd操作,框架在后台替我们完成了所有的事情,开发者可以从JDBC和SQL中解脱出来。
3、查询语言,这是持久化操作很重要的一个概念。通过面向对象而非面向数据库的查询数据,避免程序与SQL的紧密耦合。
其次,使用jpa需要的配置文件persistence.xml(这里使用的是Hibernate和jpa的结合)
下面看一个简单的小程序,使用jpa实现两张表之间的CRUD操作
首先创建两个实体类:
很显然这两个实体之间的关系是many2one,下面就通过JPA持久化API来实现它们的CRUD操作:
jpa批注的参考请查询:http://www.oracle.com/technology/global/cn/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html