EJB杂项

来源:互联网 发布:老男孩linux运维2017 编辑:程序博客网 时间:2024/05/20 06:07

一、Session Bean 生命周期中可用的Annotation

@PreConstruct    @PostConstruct   @PreDestroy  @PrePassive  @PostActive  @Init  @Remove 


二、Stateful Session Bean 必须实现接口


三、拦截器

@Interceptors  @AroudInvoke 


四、FetchType  (LAZY、EAGER)

@Basic (fetch=FetchType.LAZY)


五、实体Bean状态


状态

定义

主键

上下文关联

操作

瞬时

对象被new之后尚未保存到数据库,

一旦服务器停止,JVM会回收它所占

的内存资源,此时对象没有与session关联

 

托管

在数据库中已有数据与之对应,

且与session相关联

A.调用persist(), 实体从游离转变到托管,最后变成持久化状态.
B.调用find()或Query执行查询, 实体从持久变成托管.
C.调用refresh(),  游离实体将被重新加载,变成托管状态.
D.调用merge(),   将游离实体变成托管实体.

游离

数据库中有数据与之对应

但不在session的管理范围, 

它的属性与数据库中持久化的实体不同步

实体从托管变成游离的情况有:
A.当一个事务结束,实体超过持久化上下文作用域,实体变成游离态
B.当复制实体对象或序列化时,实体将变成游离态
C.调用clear方法时,所有的实体将强制转化为游离态

删除

实体从数据库删除后的状态

 



六、持久化操作

find:          数据库--> 托管

persist : 持久化新建 实体

flush:  同步到数据库中

merge:  插入或更新

remove:

refresh:

contains:

clear:


七、实体Bean生命周期

PostLoad/PostLoad、PrePersist/PostPersit、PreUpate/PostUpdate、PreRemove/PostRemove


八、消息驱动Bean

Queue: 1 vs 1

Topic: 1 vs M






0 0
原创粉丝点击