【问题标题】:Framework hibernate-generic-dao NullPointerException框架 hibernate-generic-dao NullPointerException
【发布时间】:2013-09-13 17:02:47
【问题描述】:

我使用 hibernate-generic-dao 框架:https://code.google.com/p/hibernate-generic-dao/。但我不能坚持,或阅读任何对象。 我总是执行一些从 GenericDAOImpl 继承的方法,导致 NullPointerException。

我读过一些帖子说问题可能是我没有设置 sessionFactory, 框架不这样做?如果是的话,这个怎么实现?

这是我继承GenericDAO接口的接口:

public interface EnterpriseDAO extends GenericDAO<Enterprise, String>{
}

这是我具体的 DAO 实现:

public class EnterpriseDAOImpl extends GenericDAOImpl<Enterprise, String>
    implements EnterpriseDAO{
}

通过这段代码,我尝试持久化一个对象:

    EnterpriseDAO dao = new EnterpriseDAOImpl();

    Enterprise enterprise1 = new Enterprise();
    enterprise1.setUniqueId("a.0.0.0.1");
    enterprise1.setName("Empresa2");
    enterprise1.setTaxId("125-565465-564");
    enterprise1.setUserName("a.0.0.0.1");
    enterprise1.setPassword("password");

    boolean exito = dao.save(enterprise1);
    System.out.println("Se guardo: " + exito);

我希望可以帮助我,我没有找到方法或看到错误。非常感谢!!

【问题讨论】:

    标签: java hibernate generics nullpointerexception dao


    【解决方案1】:

    你在你的 DAO 中设置了 SessionFactory 吗?

    我将 Spring 与 hibernate-generic-dao 一起使用,我的 daos 看起来像:

    @Repository
    public class EmployeeDaoImpl extends GenericDAOImpl<Employee, Long> {
    
        @Autowired
        @Override
        public void setSessionFactory(SessionFactory sessionFactory) {
            super.setSessionFactory(sessionFactory);
        }
    
    ...
    
    }
    

    【讨论】:

    • 是的,我已经在我的已实现类中配置了 sessionFactory,但我没有使用 Spring 和 CDI,我如何手动设置 sessionFactory?因为你被注入了这个对象。
    • 您通常会创建一个 HibernateUtil 类,该类将构建 SessionFactory 并将其公开给您的其余代码。只需谷歌 HibernateUtil,您应该会找到您要查找的内容,例如:bullraider.com/java/hibernate-36/tutorials/67-crud-in-hibernate
    • 是的,我知道,所以我必须创建 HibernateUtil 并在每个示例中传递构造函数?
    • 其实不需要把HibernateUtil传给构造函数,一般HibernateUtil都有静态方法来获取SessionFactory。你可以在你的 dao super.setSessionFactory(HibernateUtil.getSessionFactory()); 的构造函数中做这样的事情
    • 我无法实现这个框架,所以我做了我自己的DAO,用最后一条评论的方式,thnaks any way!!
    猜你喜欢
    • 2011-10-10
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2013-02-06
    相关资源
    最近更新 更多