1

I have a problem when trying to add a Real_State value to Mysql BD, but I cant figure out what's wrong with it, I am a newbie at this JPA so I don't have a near clue about what am I doing wrong, but i'd be glad to learn it:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String address = request.getParameter("address");
            String block  = request.getParameter("block");
            int internal_id = Integer.parseInt(request.getParameter("internal_id"));
            String RealStateEnum = request.getParameter("RealStateEnum");
            RealState realState = new RealState();
            RealStateID realStateID = new RealStateID(address, block, internal_id);
            realState.setRealStateEnum(edu.uptc.entity.RealStateEnum.APARTMENT);
            realState.setRealStateID(realStateID);
            Admin admin = new Admin();
            admin.setAdmin_id("1");
            admin.setAdmin_name("pepe");
            admin.setAdmin_phone("32132");
            List<RealState> realStates = new ArrayList<RealState>();
            realStates.add(realState);
            admin.setRealStates(realStates);
            realState.setAdmin(admin);
            manager m = new manager();
            boolean res=false;
            res = m.addState(realState);
    }

and doPost method is calling the next:

    public boolean addState(RealState realState) {
        boolean res = false;
        em.getTransaction().begin();
        em.persist(realState);
        em.getTransaction().commit(); //this is the ERROR trigger line
        res=true;
        return res;
    }
And the implied Entities in the transaction are: 

RealStates:

    @Entity
    @Table(name = "real_states")
    public class RealState implements Serializable{
        private static final long serialVersionUID = 4033627448194380926L;
        @EmbeddedId
        private RealStateID realStateID;
        @Column(name = "real_state_type_id")
        @Enumerated(EnumType.ORDINAL)
        private RealStateEnum realStateEnum;
        @ManyToOne(cascade = CascadeType.ALL)
        private Admin admin;
        //getters & setters...
}

Admin:

    @Entity
    @Table(name = "admins")
    public class Admin implements Serializable{
        private static final long serialVersionUID = 6412538388289111906L;
        @Id
        @Column(name = "admin_id")
        private String admin_id;
        @Column(name = "admin_name")
        private String admin_name;
        @Column(name = "admin_phone")
        private String admin_phone;
        @OneToMany(mappedBy = "admin", cascade = CascadeType.ALL)
        private List<RealState> realStates;
        //getters & setters...
    }

And the exception i am getting is :

    javax.persistence.RollbackException: Error while committing the transaction
        at org.hibernate@5.3.20.Final//org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:81)
        at org.hibernate@5.3.20.Final//org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:107)
        at deployment.ProyectoSw.war//edu.uptc.model.manager.addState(manager.java:47)
        at deployment.ProyectoSw.war//edu.uptc.control.AddStateServlet.doPost(AddStateServlet.java:65)
        at javax.servlet.api@2.0.0.Final//javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
        at javax.servlet.api@2.0.0.Final//javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
        at io.undertow.servlet@2.2.5.Final//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
        at ...

Edit:

    Caused by: java.sql.SQLException: Field 'admin_id' doesn't have a default value

That's the cause eclipse ID points to. But I am clearly setting admin_id to "1"

SternK
  • 11,649
  • 22
  • 32
  • 46
Clown
  • 183
  • 1
  • 10
  • seems a mysql related question. maybe this other question can help you https://stackoverflow.com/questions/29918954/java-sql-sqlexception-field-doesnt-have-a-default-value – tremendous7 May 15 '21 at 20:32

0 Answers0