一、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