高校平台--环境理解之Persistence Context

    刚刚接触这个项目,有很多不明白的知识,一点点的啃吧!

 

    首先遇到的问题是@PersistenceContext(unitName= "***")这句话什么意思?

 

    有前期的基本知识,我只能简单明白这里是一个注解,引入了某种东西。那么这个注解到底什么作用呢?

    首先Persistencecontext是什么?

    Persistence context是由一组受托管的实体对象实例所构成的集合,它受Entitymanager的管理。Entitymanager追踪persistence context中所有对象的修改和更新情况,并根据指定的flush模式将这些修改保存到数据库中。

    一旦persistence context被关闭,所有实体对象实例都会脱离EntityManager而成为非托管对象,任何对此对象的状态变更也将不会被同步到数据库。

 

    persistence contextjava中分为两种,分别是transaction-scopedpersistence contextextended persistence context

 

T    ransaction-scoped persistence contextpersistencecontext只在事务范围内存在,它们会在事务结束后被关闭。当事务结束时,transaction-scoped persistence context将被销毁,而所有的托管实体对象实例也将处于游离状态(detached)。

    只有受应用服务器管理的 persistencecontext才可以是事务范围的。换言之,只有标注了@PersistenceContext注解(或是其XML的等价描述)的EntityManager实例才可以是事务范围的。

 

    对于extendedpersistence context现在没有用到还不太了解,不再多说了。

 

    所以,我大概明白了这句话的作用!

        这里从persistence.xml文件中引入了一个名称为“***”的数据源配置。而且,persistence.xml可以配置事务。有了这个标识,EntityManager         可以多实体进行面向对象的管理。

 

    暂时理解了这么多,以后有更深的理解再补充。

你可能感兴趣的:(高校平台--环境理解之Persistence Context)