ejb3.0实现 带有事务提交回滚的demo
时间: 2023-12-10 09:40:08 浏览: 92
以下是一个使用 EJB 3.0 实现带有事务提交和回滚的示例:
1. 首先,创建一个 EJB 接口:
```java
import javax.ejb.Remote;
@Remote
public interface MyEjb {
public void doSomething();
}
```
2. 然后,创建一个 EJB 实现类:
```java
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
@Stateless
public class MyEjbImpl implements MyEjb {
@PersistenceContext
EntityManager entityManager;
@Transactional
public void doSomething() {
// 这里可以进行数据库操作等事务操作
// 如果抛出异常,则事务会回滚
}
}
```
在上面的代码中,我们使用 `@Transactional` 注解来标记需要事务管理的方法。
3. 最后,可以在客户端代码中调用该 EJB:
```java
import javax.ejb.EJB;
public class MyClient {
@EJB
MyEjb myEjb;
public void execute() {
try {
myEjb.doSomething();
// 如果没有异常,则事务会提交
} catch (Exception e) {
// 如果抛出异常,则事务会回滚
}
}
}
```
在客户端代码中,我们只需要捕获可能抛出的异常,如果没有抛出异常,则事务会自动提交。如果抛出异常,则事务会自动回滚。
阅读全文