JSF2与EJB3,JPA2集成

JSF2中注解的应用,使得JSF2很容易与EJB3,JPA2集成。

 

首先,定义一个业务接口,作为EJB的一个本地接口:

 

@Local
public interface CustomerSessionBeanI {
	public Customer getById(long id);
	public List<Customer> findAll();
	public void deleteById(long id);
	public void save(Customer c);
}

 

定义一个SessionBean来实现这个接口:

 

@Stateless
public class CustomerSessionBean implements CustomerSessionBeanI{

	@PersistenceContext
	private EntityManager em;

	public Customer getById(long id) {
		return em.find(Customer.class, id);
	}

	public void setEm(EntityManager em) {
		this.em = em;
	}

	public EntityManager getEm() {
		return em;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Customer> findAll() {
		return (List<Customer> )em.createNamedQuery("getAll").getResultList();
	}

	@Override
	@TransactionAttribute(TransactionAttributeType.REQUIRED)
	public void deleteById(long id) {
		Query q = em.createNamedQuery("deleteById");
		q.setParameter(1, id);
		q.executeUpdate();

	}

	@Override
	@TransactionAttribute(TransactionAttributeType.REQUIRED)
	public void save(Customer c) {
		em.persist(c);

	}
}

 

生成实体Bean:

 

 

@NamedQueries({
	@NamedQuery(name="getAll",query="select c From Customer c"),
	@NamedQuery(name="deleteById",query="Delete  c from Customer c where id=?1")
})
@Entity
public class Customer implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private long id;

	private int age;

	private String gender;

	private String name;
        
         ............................
}

 

persistence.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
	<persistence-unit name="jejbClient" transaction-type="JTA">
		<jta-data-source>ora1</jta-data-source>
		<class>com.bond.dom.Customer</class>
		<properties></properties>
	</persistence-unit>
</persistence>

 

在ManagedBean中就可以使用了:

 

@EJB

private CustomerSessionBeanI customerbean;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值