JPA相关内容

来源:互联网 发布:淘宝客要怎么推广 编辑:程序博客网 时间:2024/05/29 13:04

实体管理器(Entity Manager)是JAVA实体对象与数据库交互的中间件,作用主要有两个:

1:负责将JAVA中对实体的操作转化成SQL脚本,以便实现实体的持久化。

2.:负责将将执行面向实体的查询的JQL转化成SQL脚本,并将结果集组装给实体返回。

 JPA规定的主要方法有:

        persist(Object o),持久化实体
        merge(T o),合并实体状态
        remove(Object entity),删除实体
        find(Class entityClass,Object primarykey),根据主键查找实体
        flush(),同步到数据库
        setFlushMode(FlushModeType flushMode),设置同步方式
        getFlushMode(),得到同步方式
        lock(Object entity,LockModeType lockMode),锁定
        refresh(Object entity),更新状态
        clear(),清除持久上下文
        contains(Object entity),判断实体是否属于当前上下文环境
        createQuery(String sqlString),创建查询
        createNamedQuery(String name),创建命名查询
        createNativeQuery(String sqlString),创建标准SQL查询
        createNativeQuery(String sqlString,Class resultClass),创建标准SQL查询,并指定查询的结果
        createNativeQuery(String sqlString,String resultsetMapping),创建标准SQL查询,并指定查询的结果如何映射
        getTransaction(),返回事务对象

 

实体属性加载方式有两个:

      及时加载(EAGER)

      惰性加载(LAZY)

例子:@OneToOne(fetch=FetchType.Lazy)

如果是普通的属性

例子:@Basic(fetch=FetchType.Lazy)

实体关系注释默认的加载方式@OneTooneEAGER@OneToManyLAZY@ManyToOneEAGER@ManyToManyLAZY

 

凡是加载的是集合类的,默认为LAZY方式,否则就是EAGER方式

 

级联:

@OneToOne(CascadeType.Merge)

@OneToOne(CascadeType.Remove)

@OneToOne(CascadeType.All)

 

实体的生命周期:

1,瞬时状态

2,持久化状态

3,游离状态

4,托管状态

5,销毁状态

 

实体管理器会定时发现托管状态下的实体对象的状态发生变化,就自动执行flush()方法,将最新的实体状态保存到数据库中!

0 0
原创粉丝点击