微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并和删除 javabeans 的问题

如何解决合并和删除 javabeans 的问题

晚上好,我正在尝试删除和更新存储到数据表中的实体,应用程序不会给我错误,但事实上它不会从数据库中合并和删除记录

可能是实体管理器的问题

谁能解释一下我做错了什么?

<p:commandButton value="Save" icon="pi pi-check" action="#{marcaController.creamarca()}"
                                 update="manage-product-content" process="manage-product-content @this"/>
//...
 <p:commandButton value="Yes" icon="pi pi-check" action="#{marcaController.deletemarca()}"
                             process="@this" oncomplete="PF('deleteProductDialog').hide()"/>

这是 marcaController

    marca m=new marca();
    
    private static final long serialVersionUID = 1L;
    @EJB
    private marcaDao marcaDao;

    
    public void openNew() {
        this.m = new marca();
    }
    
    public marca getSelected() {
        return m;
        
    }
    public void setSelected(marca m) {
        this.m=m;
    }
    public void creamarca() {
        
       if(m.getIdmarca()==null) {
            try {
                marcaDao.create(m);
                FacesMessage m = new FacesMessage
                        (FacesMessage.SEVERITY_INFO,"Product created","OK");
                FacesContext.getCurrentInstance().addMessage("Success",m);
            } catch (Exception e) {
                FacesMessage m = new FacesMessage
                        (FacesMessage.SEVERITY_ERROR,e.getMessage(),"KO");
                FacesContext.getCurrentInstance().addMessage("Error",m);
                
                
            }
       }
       else {
        
           update();
           FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Product Updated"));
       }
    
        PrimeFaces.current().executeScript("PF('manageProductDialog').hide()");
        PrimeFaces.current().ajax().update("form:messages","form:dt-products");
        
    }
    public void update() {
        
        marcaDao.update(getSelected());
        
    }
    public  void deletemarca() {
        marca m1=m;
        
        marcaDao.deleteById(m1.getIdmarca());
        
        m=null;
        FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Product Removed"));
        PrimeFaces.current().ajax().update("form:messages","form:dt-products");
        
    }

这是 marcaDao

@PersistenceContext(unitName = "mio-persistence-unit")
    private EntityManager em;

    public void create(marca entity) {
        em.persist(entity);
    }

    public void deleteById(Integer id) {
        
        marca entity = em.find(marca.class,id);
        if (entity != null) {
            em.remove(entity);
        }
    }


    public void update(marca entity) {
        
        marca m2 = em.find(marca.class,entity.getIdmarca());
        
        em.merge(m2);
        
    }

先谢谢你!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。