JPA学习笔记2——JPA高级

 

1.JPA的实体生命周期:

JPA的实体有以下4中生命周期状态:

(1).New:瞬时对象,尚未有id,还未和Persistence Context建立关联的对象。

(2).Managed:持久化受管对象,有id值,已经和Persistence Context建立了关联的对象。

(3).Datached:游离态离线对象,有id值,但没有和Persistence Context建立关联的对象。

(4).Removed:删除的对象,有id值,尚且和Persistence Context有关联,但是已经准备好从数据库中删除。

四种状态总结:

状态名                  作为java对象存在              在实体管理器中存在           在数据库存在

New                              yes                                  no                               no

Managed                      yes                                  yes                              yes

Detached                      no                                   no                                no

Removed                      yes                                  yes                              no

2.JPA实体状态的切换:

JPA实体的四种状态之间可以进行切换,具体如下:

3.容器管理和应用程序管理的EntityManager实体管理器:

JPA中有两种管理实体管理器的方法:

(1).容器管理(Container-Manager)的实体管理器:

容器管理实体管理器,是由JavaEE容器所管理的实体管理器,通过PersistenceContext注入方式来生成实体管理器,具体代码如下:

@PersistenceContext(unitName=”持久化单元名称”)

Protected EntityManagerem;

(2).应用程序管理(Application-Manager)的实体管理器:

JPA不但可以在JavaEE容器中使用,也可以脱离JavaEE容器在JavaSE程序中使用,当JPA脱离了JavaEE服务器环境时,就需要通过应用程序来获取实体管理器,具体代码如下:

a.       代码方式:

//首先根据持久化单元创建实体管理器工厂

EntityManagerFactoryemf = Persistence.createEntityManagerFacotory(持久化策略文件中的持久化单元名称);

//通过实体管理器工厂创建实体管理器

EntityManager em= emf.createEntityManager();

b.       注解方式:

//将持久化单元注入实体管理器工厂中

@PersistenceUnit(持久化单元名称)

protected Entity

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值