我有两个豆子:一个管理一个股票,另一个管理两个股票之间的动作。所以,在MovStock bean中,我有:
@EJB
private Stock stock1;
@EJB
private Stock stock2;
[...]
public void setStocks(int idStock1, int idStock2) {
stock1.loadStock(idStock1);
stock2.loadStock(idStock2);
}
在我的代码中的某处,在另一个bean上,我这样做:
@EJB
private MovStock movStock;
[...]
movStock.setStocks(10,20);
但是它导致stock1和stock2持有相同的股票(20)。当然我做错了什么,但是使用@PersistenceContext等同一个bean的多个实例的正确方法是什么?
谢谢
答案 0 :(得分:2)
豆类是容器管理的。所以你不必担心实例。 Container会在需要时创建新的,但它将具有相同的状态(如果是Statefull)。看起来Stock
不应该是Enterprise Bean,而是DTO。您不应该在EJB上执行数据操作。 EJB应该在适当的结构(DTO)上执行它。