【问题标题】:I am trying to insert into database.n getting an error "java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity"我正在尝试插入到 database.n 中,出现错误“java.lang.IllegalArgumentException:尝试使用空实体创建 saveOrUpdate 事件”
【发布时间】:2016-01-12 10:40:01
【问题描述】:

这是我的 POJO 课程

    package model;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;

    @Entity
    @Table(name="Registration")
    public class RegistrationModel {

        private int id;
        private String firstName;
        private String lastName;
        private String cellno;
        private String city;
        private String state;
        private String pincode; 


        @Id
        @GeneratedValue
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        @Column(name="First_Name")
        public String getFirstName() {
            return firstName;
        }
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
        @Column(name="Last_Name")
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
        @Column(name="Cell_no")
        public String getCellno() {
            return cellno;
        }
        public void setCellno(String cellno) {
            this.cellno = cellno;
        }
        @Column(name="City")
        public String getCity() {
            return city;
        }
        public void setCity(String city) {
            this.city = city;
        }
        @Column(name="State")
        public String getState() {
            return state;
        }
        public void setState(String state) {
            this.state = state;
        }
        @Column(name="Pincode")
        public String getPincode() {
            return pincode;
        }
        public void setPincode(String pincode) {
            this.pincode = pincode;
        }

    }

动作类

package action;

import java.io.Serializable;

import service.RegistrationService;
import model.RegistrationModel;

import com.opensymphony.xwork2.ActionSupport;

public class RegistrationAction extends ActionSupport 
{
    private RegistrationModel model;
    private RegistrationService registrationService;


    public RegistrationModel getModel() {
        return model;
    }

    public void setModel(RegistrationModel model) {
        this.model = model;
    }



    public RegistrationAction() {
        registrationService=new RegistrationService();
    }



    @Override
    public String execute() throws Exception {

        if(null!=getModel())
        {

            registrationService.add(getModel());            
        }       

        return SUCCESS; 
    }

    public String addRegistrationDetails() 
    {

        System.out.println("pramod");
        System.out.println(getModel());
        RegistrationModel queryResult=registrationService.add(getModel());
        return SUCCESS;
    }




}

服务类

package service;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import model.RegistrationModel;
import action.RegistrationAction;

public class RegistrationService {

    public RegistrationModel add(RegistrationModel model)
    {

        SessionFactory sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory();
        Session session =sessionFactory.openSession();
        session.beginTransaction();


                session.beginTransaction();
                session.save(model);
                session.getTransaction().commit();

                return model;


    }

}

我正在尝试将此数据插入数据库但收到此错误:

java.lang.IllegalArgumentException:尝试使用空实体创建 saveOrUpdate 事件。

做 Struts2 和 Hibernate 的集成

【问题讨论】:

  • 您在没有先设置模型的情况下使用 getModel()。此外,欢迎使用 stackoverflow。
  • 您是否使用模型驱动而不使用 ModelDriven ?顺便说一句,不要使用模型驱动
  • 是的,我使用的是模型驱动而不使用 ModelDriven

标签: java hibernate exception orm entity


【解决方案1】:
  1. 验证model 是否不为空

    if(model == null)
        throws new IllegalArgumentException("Model is null");
    session.save(model);
    
  2. 您应该使用可以为空的id 类型,以便Hibernate 知道您何时传递transitive entity

    private Integer id;
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2021-04-30
    • 2019-10-30
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多