我正在进行一项简单的测试。我在数据库中放了一个Project
实体,然后将其删除。代码没有错误,但不删除实体。 main
的代码和两种方法如下。欢迎任何帮助。
测试
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();
}
添加方法
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();
}
答案 0 :(得分:0)
您无需在uses TeeBrushDlg;
procedure TForm1.FormCreate(Sender: TObject);
var BrushDialog: TBrushDialog;
begin
BrushDialog:=TBrushDialog.Create(Self);
Chart1.BackImage.Graphic:=BrushDialog.ImageCarbon.Picture.Graphic;
end;
之前调用merge
。
为了从数据库中删除对象,必须先进行 检索,然后在活动事务中,它 可以使用remove方法删除。