保存对象/Hibernate 时出现 java.lang.NullPointerException

标签 java mysql spring hibernate hql

我正在尝试使用 Hibernate 和 Spring 在 HQL 中将对象保存在我的 MySQL 数据库中。 但是,保存时出现错误消息:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException

public void addCountry(Country country) throws Exception {

    Session session = sessionFactory.openSession();
    Transaction transaction = null;

    try {
        transaction = session.beginTransaction();

        //Add new Country object
        Country c = new Country();
        c.setId(""); //id value is auto into mySQL
        c.setCity1(country.getCity1());
        c.setCity2(country.getCity2());
        session.save(c);

        transaction.commit();

    } catch (Exception e) {
        if (transaction != null) {
            transaction.rollback();
        }
        throw e;
    } finally {
        session.close();
    }
}

最佳答案

正如 juanlumn 所说,删除 setId("") 因为 Hibernate 会为你创建这个。需要调试以查看哪个对象导致 NullPointerException,就像需要知道您是否正在获取 Hibernate session 一样,这将让您知道您已正确配置 Hibernate。同样,您将国家/地区作为方法参数传递,但通过填充 dao 本身来保存 c,不知道为什么。

关于保存对象/Hibernate 时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47336892/

相关文章:

Java FX-8 : Why is EventType generic?

php - MySQL 触发器在 PHP 中不起作用

php - 我应该何时以及如何使用此功能?

java - 在java中通过特定单词解析Http响应?

java - 如何使用 JOptionPane 将数据输入到数组中

java - 使用 findall 或其他查询从存储库获取属性后更改属性值时,在 Spring boot JPA 中禁用数据库更新

java - {Core Java with Spring} 通过普通 JDBC 调用 PL SQL 存储过程 - 理想情况下谁应该进行事务管理

java - Spring JMSListener 和 JAXB 编码

java - Spring MVC - 如何将模型属性传递给多个 JSP

php - php 加速器是如何工作的?