0
我正在做一个简单的测试。我在数据库中放入了一个Project
实体,然后将其删除。该代码没有提供任何错误,但不会删除该实体。下面是main
和两种方法的代码。欢迎任何帮助。方法不会从数据库中删除 - JPA
测试
public static void main(String[] args) {
EntityManager em = EmFactory.getEntityManager(); // My class gives EntityManagaer instances
EntityTransaction tx = em.getTransaction();
Project p = new Project();
p.setProjectKey("Key");
ProjectDAO dao = FactoryDAO.newProjectDAO();
dao.addProject(p);
dao.deleteProject(p);
em.close();
}
Add方法
public void addProject(Project project) {
EntityManager em = EmFactory.getEntityManager();
EntityTransaction tx = em.getTransaction();
try{
tx.begin();
em.persist(project);
tx.commit();
}
catch(PersistenceException e){
tx.rollback();
throw e;
}
}
删除方法
public void deleteProject(Project p) {
EntityManager em = EmFactory.getEntityManager();
EntityTransaction tx = em.getTransaction();
try{
tx.begin();
p = em.merge(p);
em.remove(p);
tx.commit();
}
catch(PersistenceException e){
tx.rollback();
throw e;
}
em.close();
}
看起来你和主方法中启动的事务处于同一个事务,并且em.close()似乎没有提交你的事务。 – JEY