public ServiceResult<Void> untagProductToPage(Long pageID, Long productID) { ServiceResult<Void> result = new ServiceResult<Void>(); Page page = null; Product product = null; PersistenceManager pm = PMF.get().getPersistenceManager(); try { page = pm.getObjectById(Page.class, pageID); product = pm.getObjectById(Product.class, productID); if (page == null || product == null) { result.setMessage(Global.messages.getString("no_page_or_product")); } else { page.getSetProduct().remove(productID); product.getSetPagesID().remove(pageID); result.setOK(true); result.setMessage(Global.messages.getString("untag_product_into_page_successfully")); } } catch (Exception e) { e.printStackTrace(); result.setMessage(Global.messages.getString("untag_product_into_page_fail")); } finally { try { pm.close(); } catch (Exception e) { e.printStackTrace(); } } if (result.isOK()) { ServiceResult<Void> notiResult = dbNoti.insertWhenUserTagProductToPage(pageID, productID, false); if (notiResult.isOK() == false) { result.setMessage( result.getMessage() + ";Notification Exception:" + notiResult.getMessage()); } } return result; }