一、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(), 实体从游离转变到托管,最后变成持久化状态. |
游离 |
数据库中有数据与之对应 但不在session的管理范围, 它的属性与数据库中持久化的实体不同步 |
有 |
无 |
实体从托管变成游离的情况有: |
删除 |
实体从数据库删除后的状态 |
有 |
有 |
|
六、持久化操作
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