updatelosedaobean.java

来自「精通EJB3源码」· Java 代码 · 共 76 行

JAVA
76
字号
package com.foshanshop.ejb3.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.foshanshop.ejb3.UpdateLoseDAO;
import com.foshanshop.ejb3.bean.User;
/**
 * 更新丢失例子
 */
@Stateless
@Remote(UpdateLoseDAO.class)
public class UpdateLoseDAOBean implements UpdateLoseDAO {
	@PersistenceContext protected EntityManager em;
	
	public void init(User user) {
		em.persist(user);
	}
	
	public String payElectricityFee(int id) {//交电费
		try {
			User user = em.find(User.class, id);
			String out = "交电费事务读取到的存款为:"+ user.getBalance();
			Thread.sleep(3000);//等待存工资事务开启
			user.setBalance(user.getBalance()-200);
			return out;
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public String saveLaborage(int id) {//存工资
		try {
			User user = em.find(User.class, id);
			String out = "存工资事务读取到的存款为:"+ user.getBalance();
			Thread.sleep(4000);//停下来,让交电费事务执行更新
			user.setBalance(user.getBalance()+13000);
			return out;
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	
	public String secondPayElectricityFee(int id) {//交电费
		try {
			User user = em.find(User.class, id);
			String out = "交电费事务读取到的存款为:"+ user.getBalance();
			user.setBalance(user.getBalance()-200);
			em.flush();//立刻向数据库发送update语句,否则ejb会在事务结束时才把SQL批量提交到数据库
			Thread.sleep(2000);//等待存工资事务开启
			return out;
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return null;
	}

	public String secondSaveLaborage(int id) {//存工资
		try {			
			User user = em.find(User.class, id);
			String out = "存工资事务读取到的存款为:"+ user.getBalance();
			Thread.sleep(4000);//停下来,让交电费事务执行结束
			user.setBalance(user.getBalance()+13000);
			return out;
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?