Hibernate EntityManager - 封闭连接

时间:2013-06-03 09:43:06

标签: java hibernate jpa ejb-3.0 stateless-session-bean

我正在使用EntityManagers对数据库执行操作。但是,这种情况发生在20%的情况下,EntityManager获得的连接已关闭,我无法执行任何操作。 EntityManager是打开的,因为我检查了它,但连接已关闭。

代码是这样的:

我有一个Session bean:

@Stateless(name = "TestDAO", mappedName = "TestDAO")
@Remote
public class TestDAOBean
  implements TestDAO
{
  @PersistenceContext(unitName="support")
  private EntityManager em;

  public TestDAOBean()
  {
  }

  public void persistObj(MyObj obj)
  {
    try
    {
      Query query = em.createNamedQuery("MyNamedQuery");
      query.setParameter("Name", "Param");
      query.setParameter("Value", "bla bla");
      query.executeUpdate();

      em.persist(obj);
    }
    catch(Exception ex) 
    {
      ex.printStackTrace();
    }
  }

有时,由于“连接已关闭”错误,上面的NamedQuery失败。我的印象是EJB容器处理关闭EM,如果它被注入,我不需要担心。所以我不明白为什么连接有时会被关闭......

任何帮助?

0 个答案:

没有答案