删除jsf数据表中的行

我想删除jsf数据表中的一行。 我正在使用jsf和hibernate和spring。 但删除操作不起作用。 Customermanagedbean.java

@ManagedBean(name="CustomerMB") @RequestScoped public class Customermanagedbean implements Serializable{ @ManagedProperty(value="#{CustomerBoImpl}") ICustomerBo customerBoImpl; List CustomerList; public int customerId; public String name; public String address; public String createdDate; public ICustomerBo getCustomerBoImpl() { return customerBoImpl; } public void setCustomerBoImpl(ICustomerBo customerBoImpl) { this.customerBoImpl = customerBoImpl; } public List getCustomerList() { CustomerList=new ArrayList(); CustomerList.addAll(getCustomerBoImpl().findAllCustomer()); return CustomerList; } public void setCustomerList(List customerList) { CustomerList = customerList; } public String deleteCustomer(Customer customer){ getCustomerBoImpl().deleteCustomer(customer); return ""; }// getter and setter method 

CustomerBoImpl.java

 @Transactional(readOnly = true) public class CustomerBoImpl implements ICustomerBo{ ICustomerDao customerDaoImpl; public ICustomerDao getCustomerDaoImpl() { return customerDaoImpl; } public void setCustomerDaoImpl(ICustomerDao customerDaoImpl) { this.customerDaoImpl = customerDaoImpl; } @Transactional(readOnly = false) @Override public void deleteCustomer(Customer customer){ getCustomerDaoImpl().deleteCustomer(customer); } @Override public List findAllCustomer(){ return getCustomerDaoImpl().findAllCustomer(); } } 

CustomerDaoImpl.java

 public class CustomerDaoImpl implements ICustomerDao{ private SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory;} public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public void deleteCustomer(Customer customer){ sessionFactory.openSession(); getSessionFactory().getCurrentSession().delete(customer); } public List findAllCustomer(){ sessionFactory.openSession(); List list = getSessionFactory().getCurrentSession ().createQuery("from Customer").list(); return list; } } 

defualt.xhtml

           Customer ID  #{c.customerId}    Name  #{c.name}    Address  #{c.address}    Created Date  #{c.createdDate}   Action    

怎么了? 请帮帮我。

检查CustomerDaoImpl类的deleteCustomer方法。 您可以尝试如下样本

  public void deleteCustomer(Customer customer){ getHibernateTemplate().delete(customer); } 

在CustomerBoImpl类中,更改此项

  @Autowired ICustomerDao customerDaoImpl; 

解决方法是创建一个自定义类(CustomHibernateDaoSupport)并扩展“HibernateDaoSupport”并自动连接会话工厂,并且您的DAO类扩展了此类

  public abstract class CustomHibernateDaoSupport extends HibernateDaoSupport{ @Autowired public void anyMethodName(SessionFactory sessionFactory){ setSessionFactory(sessionFactory); } }