原文链接:http://blog.csdn.net/han_yankun2009/article/details/45361787
EntityManager,顾名思义,实体管理器,负责管理Entity对象,对Entity的操作包括添加,删除,修改和查询,都是通过实体管理器来实现的。它由EntityManagerFactory 所创建。EntityManagerFactory,作为EntityManager的工厂,包含有当前O-R映射的元数据信息,每个 EntityManagerFactory,可称为一个持久化单元(PersistenceUnit),每个持久化单元可认为是一个数据源的映射
PersistenceContext,称为持久化上下文,被管理的实体对象(Entity) 的数据。每个EntityManager,都会跟一个PersistenceContext相关联。PersistenceContext中存储的是实体 对象的数据,而关系数据库中存储的是记录,EntityManager正是维护这种OR映射的中间者,它可以把数据从数据库中加载到 PersistenceContext中,也可以把数据从PersistenceContext中持久化到数据库,EntityManager通过Persist、merge、remove、refresh、flush等操作来操纵PersistenceContext与数据库数据之间的同步!
1 引入实体管理器
依赖注入EntityManaer
在EJB容器中,使用依赖注入来创建EntityManager。
如:
- @PersistenceContext(unitName="exam-entity")
- protectedEntityManager em;
@PersistenceContex表示标注的属性 em 是一个实体管理器EntityManager对象,EJB容器会根据 unitName 的值来初始化EntityManger。unitName 的值为persistence.xml中配置的unit中的name值
如:
- <persistence-unitnamepersistence-unitname="exam-entity" transaction-type="JTA">
2 操作实体Entity
基本的操作有
persist
Find
Merge
Remove
createQuery
2.1添加Entity
实体管理器中的persist方法可以在数据中添加一条记录
- Public void persist(object entity)
实例代码如下:
- User user= new User();
- user.setId(UUID.randomUUID().toString());
- user.setName("田老师");
- em.persist(user);
2.2根据主键查找Entity
find方法根据主键查找对应实体
- Public <T> find (Class<T> entityClass,Object primaryKey);
primaryKey为主键的值。如:查找id为uuid的实体代码
- User user=em.find(User.class,"uuid");
2.3更新 Entity
merge方法可以将实体更新到数据库中,
- Public <T> T merge (T entity);
其中,可以通过find方法先查找出来,然后重新设置值后,最后更新
- User user=em.find(User.class,"uuid");
- user.setName("李老师");
- Em.merge(user);
2.4删除Entity
remove方法删除数据库中一条记录
- Pubilc void remove(Object entity);
也是通过find方法先查找出来,然后删除
- User user=em.find(User.class,"uuid");
- em.remove(user);
小结:
以上是对JPA的初步认识,是最基本的增删该查是没有问题的,当然了这里介绍的只是初步认识,并没有设计抽象等操作,接下来 是 进阶篇幅介绍。
相关推荐
本文是学习 JPA 笔记,可能会根据自己的学习进度逐渐完善。学习中使用的持久层技术 是 EJB,JPA 注解方式,底层应用的是 Hibernate 实现和 MySql 数据库,应用服务器采 用的是 JBoss 4.2.0。随着笔者的学习笔记,...
JPA教程JPA教程JPA教程JPA教程JPA教程
jpa jpa规范 jpa源码 jpa jpa规范 jpa源码
jpajpajpajpajpajpajpajpajpajpajpajpajpa
包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注
JPA视频_PPT及源码 · 1. JPA视频_概述 · 2. JPA视频_HelloWorld · 3. JPA视频_基本注解 · 4. JPA视频_Transient注解 · 5. JPA视频_Temporal注解 · 6. JPA视频_Table主键生成策略 · 7. JPA视频_...
jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联映射jpa 关联...
JPA
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
xml文件 博文链接:https://910284750-qq-com.iteye.com/blog/1257595
Spring Data JPA 简化 JPA 开发
JPA学习参考文档 JPA学习参考文档 JPA学习参考文档
这是JPA标签配置手册,从ORACLE官方得到的资料,里面对JPA所有的标签都进行详细的说明。 Index of Annotations • A o @AssociationOverride o @AssociationOverrides o @AttributeOverride o @AttributeOverrides ...
JPA JAPJPA JAPJPA JAPJPA JAPJPA JAPJPA JAPJPA JAPJPA JAPJPA JAPJPA JAP
jpa 全面学习资料 入门 实战 示例 jpa开发手册 JPA_全面讲解 JPA使用入门_基础 JPA学习笔记 JPA注解 JPA简介
JPA的API非常简洁,但是描述很全面 需要的JPA知识全部可以找到
spring注解完整版+spring data jpa官方文档中文翻译+JPA2.0官方文档 文档内容齐全 值得参考学习
在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA。 通常我们写持久层,都是先写一个接口,再写接口对应的实现类,在实现类中进行持久层的业务逻辑处理。 而现在,Spring Data...
Jpa详细查询实例介绍,教你如何使用JPA,简单,分类实例。
Spring Data JPA中文文档1.4.3