EJB3.0实体Bean(三)

6.5 持久化实体管理器EntityManager
EntityManager 是用来对实体Bean进行操作的辅助类。他可以用来产生/删除持久化的实体Bean,通过主键查找
实体bean,也可以通过EJB3 QL语言查找满足条件的实体Bean。EntityManager 的获取前面已经介绍过,可以通
过@PersistenceContext注释由EJB容器动态注入,例:
@PersistenceContext(unitName="foshanshop")
EntityManager em;
下面介绍EntityManager 常用的API
6.5.1 Entity 获取find()
如果知道Entity的唯一标示符,我们可以用find()方法来获得Entity。
@PersistenceContext
protected EntityManager em;

Person person = em.find(Person.class, Integer.valueOf(personid));
6.5.2 添加persist()
保存Entity 到数据库。
@PersistenceContext
protected EntityManager em;

Person person = new Person();
Jboss EJB3.0实例教程
版权所有:黎活明
person.setName(name);
//把数据保存进数据库中
em.persist(person);
6.5.3 更新Merge()
把Entity 更新到数据库。
@PersistenceContext
protected EntityManager em;

Person person = em.find(Person.class, Integer.valueOf(personid));
//更新数据
em.merge (person);
6.5.4 删除Remove()
把Entity从到数据库中删除。
@PersistenceContext
protected EntityManager em;

Person person = em.find(Person.class, Integer.valueOf(personid));
//如果级联关系cascade=CascadeType.ALL,在删除person时候,也会把级联对象删除。把cascade
属性设为cascade=CascadeType.REMOVE 有同样的效果。
em.remove (person);
6.5.5 执行EJB3 QL 操作createQuery()
@PersistenceContext
protected EntityManager em;

Query query = em.createQuery("select p from Person p where p. name=’黎明’");
List result = query.getResultList();
Iterator iterator = result.iterator();
while( iterator.hasNext() ){
//处理Person
}

// 执行更新语句
Query query = em.createQuery("update Person as p set p.name =?1 where p. personid=?2");
query.setParameter(1, “黎明” );
query.setParameter(2, new Integer(1) );
Jboss EJB3.0实例教程
版权所有:黎活明
int result = query.executeUpdate(); //影响的记录数

// 执行更新语句
Query query = em.createQuery("delete from Person");
int result = query.executeUpdate(); //影响的记录数

你可能感兴趣的:(EJB3.0实体Bean(三))