EJB - Enterprise JavaBean
三种: Session Bean, Entity Bean, Message Driven Bean
Session Bean又分为Stateless Session Bean和Stateful Session Bean
EJB 最大的价值就是分布式的方案。比如一个Web系统,我们可以用Remote的方式,把开发好的EJB组件部署到一个或多个Server上,而把Web组件(.war)部署到另一个Server上。
Session Bean就是Service层, 它提供具体的逻辑,则删改查。 一般来说DAO层使用Session Bean
DAO类定义成接口,DaoImpl定义成Bean
Entity Bean具体和数据库打交道,差不多也就是JPA那一套东西。
Entity Bean其实也就是简单的POJO, 它带了一些注解,来和数据库映射。
EJB3.0并没有规定必须承载equals()和hashCode(), 但是建议重载。
find(), 如果找不到, 返回null
getRefrence(), 如果缓存中找不到, 不会立即去数据库查找, 而是当第一次调用实体的时候去找,如果找不到, 抛出EntityNotFoundException 注意: 并不是getRefrence()是抛异常,而是第一次 访问该实体的时候抛出。
persist(), merge(), remove(), createQuery(), createNativeQuery(), refresh(), flush()
contains() 检测一个实体是否是托管状态
clear() 分离所有托管实体