删除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); } }
- JPA Hibernate Persistenceexception无法构建Hibernate SessionFactory
- Hibernate / JPA注释 – 未知实体
- 无法解析org.springframework.transaction.annotation.Transactional的依赖项
- Hibernate Sequence Id Specification
- 如何在CDI环境中管理EntityManager生命周期(使用Tomcat)
- java.lang.NoClassDefFoundError:org / hibernate / cfg / Configuration
- 关注hibernate查询的问题
- 错误:未找到实体类:
- 由于代理而导致Spring Bean注入失败