您的位置:首页 > 其它

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

2013-12-26 19:13 399 查看
    刚刚接触这个项目,有很多不明白的知识,一点点的啃吧!
 
    首先遇到的问题是@PersistenceContext(unitName= "***")这句话什么意思?
 
    有前期的基本知识,我只能简单明白这里是一个注解,引入了某种东西。那么这个注解到底什么作用呢?
    首先Persistencecontext是什么?
    Persistence context是由一组受托管的实体对象实例所构成的集合,它受Entitymanager的管理。Entitymanager追踪persistence
context中所有对象的修改和更新情况,并根据指定的flush模式将这些修改保存到数据库中。
    一旦persistence context被关闭,所有实体对象实例都会脱离EntityManager而成为非托管对象,任何对此对象的状态变更也将不会被同步到数据库。
 
    persistence context在java中分为两种,分别是transaction-scopedpersistence
context和extended persistence context。
 
T    ransaction-scoped persistence context的persistencecontext只在事务范围内存在,它们会在事务结束后被关闭。当事务结束时,transaction-scoped
persistence context将被销毁,而所有的托管实体对象实例也将处于游离状态(detached)。
    只有受应用服务器管理的 persistencecontext才可以是事务范围的。换言之,只有标注了@PersistenceContext注解(或是其XML的等价描述)的EntityManager实例才可以是事务范围的。
 
    对于extendedpersistence context现在没有用到还不太了解,不再多说了。
 
    所以,我大概明白了这句话的作用!
        这里从persistence.xml文件中引入了一个名称为“***”的数据源配置。而且,persistence.xml可以配置事务。有了这个标识,EntityManager就 
       可以多实体进行面向对象的管理。
 
    暂时理解了这么多,以后有更深的理解再补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: