简单的问题。代码如下:

public void insertDefacer(Defacer defacer) {
    try {
        em.persist(defacer);
    } catch (PersistenceException | DatabaseException e) {
        defacer = em.find(Defacer.class, defacer.getIdentity());
        defacer.setStats(defacer.getStats() + 1);
        em.merge(defacer);
    }
}

当DeFisher已经存在于数据库(MySQL)中时,persist操作抛出异常(PersistenceException和/或DatabaseException)。看起来很正常。所以我想抓住这些例外并威胁他们。但是在记录这些异常之后,我的程序突然结束(没有完成方法)。
为什么?
细节(可能重要也可能不重要):em是一个EntityManager,可以通过@PersistenceContext

最佳答案

你是不是想用这种方法去找经理?

@PersistenceContext
private EntityManager em;

public EntityManager getEntityManager() {
return em;
}

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

07-24 09:37