3

I am trying to insert into database. I am posting my code below.

DAO class:

package com.persistent.progracers.data.dao;    

import org.hibernate.Session;
import com.persistent.progracers.data.pojo.UserDemographicInfo;

public class UserDemographicInfoDAO {
public void persist(UserDemographicInfo userDemographicInfo, Session session){
    session.save("UserDemographicInfo", userDemographicInfo);
}

public void update(UserDemographicInfo userDemographicInfo, Session session){
    session.saveOrUpdate("UserDemographicInfo", userDemographicInfo);
}

public void delete(UserDemographicInfo userDemographicInfo, Session session){
    session.delete("UserDemographicInfo", userDemographicInfo);
}

}  

POJO class:

 package com.persistent.progracers.data.pojo;

 import java.util.Date;

 @SuppressWarnings("serial")
public class UserDemographicInfo implements java.io.Serializable {

private long id;
private String firstName;
private String lastName;
private Date dateOfBirth;
private String mobileNumber;
private String gender;
private String status;
private Address address;
private String employeeID;
private String bloodGroup;
private Date dateCreated;
private Date dateModified;

public UserDemographicInfo() {
}

public UserDemographicInfo(String firstName, String lastName,
        Date dateOfBirth, String mobileNumber, String gender,
        String status, Address address, String employeeID,
        String bloodGroup, Date dateCreated, Date dateModified) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.dateOfBirth = dateOfBirth;
    this.mobileNumber = mobileNumber;
    this.gender = gender;
    this.status = status;
    this.address = address;
    this.employeeID = employeeID;
    this.bloodGroup = bloodGroup;
    this.dateCreated = dateCreated;
    this.dateModified = dateModified;
}

public long getId() {
    return this.id;
}

public void setId(long id) {
    this.id = id;
}

public String getFirstName() {
    return this.firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return this.lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public Date getDateOfBirth() {
    return this.dateOfBirth;
}

public void setDateOfBirth(Date dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public String getMobileNumber() {
    return this.mobileNumber;
}

public void setMobileNumber(String mobileNumber) {
    this.mobileNumber = mobileNumber;
}

public String getGender() {
    return this.gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getStatus() {
    return this.status;
}

public void setStatus(String status) {
    this.status = status;
}

public Address getAddress() {
    return this.address;
}

public void setAddress(Address address) {
    this.address = address;
}

public String getEmployeeID() {
    return this.employeeID;
}

public void setEmployeeID(String employeeID) {
    this.employeeID = employeeID;
}

public String getBloodGroup() {
    return this.bloodGroup;
}

public void setBloodGroup(String bloodGroup) {
    this.bloodGroup = bloodGroup;
}

public Date getDateCreated() {
    return this.dateCreated;
}

public void setDateCreated(Date dateCreated) {
    this.dateCreated = dateCreated;
}

public Date getDateModified() {
    return this.dateModified;
}

public void setDateModified(Date dateModified) {
    this.dateModified = dateModified;
}

}  

Hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="SessionFactory">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">admin123</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ngo</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">ngo</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<mapping resource="com/persistent/progracers/data/pojo/UserDemographicInfo.hbm.xml"/>

Now the problem is I am using WaveMaker Studio..It creates one Java Service. So the Java Service Code is here :

import org.hibernate.Session;

import com.persistent.progracers.data.dao.UserDemographicInfoDAO;
import com.persistent.progracers.data.pojo.UserDemographicInfo;
import com.persistent.progracers.wecare.factory.HibernateSessionFactory;


public class UserRegistrationService extends com.wavemaker.runtime.javaservice.JavaServiceSuperClass {
/* Pass in one of FATAL, ERROR, WARN,  INFO and DEBUG to modify your log level;
 *  recommend changing this to FATAL or ERROR before deploying.  For info on these levels, look for tomcat/log4j documentation
 */
public UserRegistrationService() {
   super(INFO);
}

public UserDemographicInfo sampleJavaOperation(UserDemographicInfo demopojo) {
   UserDemographicInfoDAO demodao=new UserDemographicInfoDAO();

   Session session = HibernateSessionFactory.getSession();
   try {
      log(INFO, "Starting sample operation");
      demodao.persist(demopojo, session);
      log(INFO, "Returning ");
   } catch(Exception e) {
      log(ERROR, "The sample java service operation has failed", e);
   }
   return demopojo;
}

}

There is one service variable in wavemaker which binds all the values to the table's related fields.But It gives me Error when I click on save button

:java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity.

StackTrace :

INFO (JavaServiceSuperClass.java:155) 22:41:25 - Starting sample operation
ERROR (JavaServiceSuperClass.java:131) 22:41:26 - The sample java service operation     has failed
java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null     entity
   at org.hibernate.event.SaveOrUpdateEvent.(SaveOrUpdateEvent.java:40)
   at org.hibernate.event.SaveOrUpdateEvent.(SaveOrUpdateEvent.java:23)
   at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
   at       com.persistent.progracers.data.dao.UserDemographicInfoDAO.persist(UserDemographicInfoDAO.java:8)
 at UserRegistrationService.sampleJavaOperation(UserRegistrationService.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.wavemaker.runtime.service.reflect.ReflectServiceType.invokeMethod(ReflectServiceType.java:122)
at com.wavemaker.runtime.server.ServerUtils.invokeMethodWithEvents(ServerUtils.java:303)
at com.wavemaker.runtime.server.ControllerBase.invokeMethod(ControllerBase.java:269)
at com.wavemaker.runtime.server.JSONRPCController.executeRequest(JSONRPCController.java:123)
at com.wavemaker.runtime.server.ControllerBase.handleRequestInternal(ControllerBase.java:125)
at  org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.jav a:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:788)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:143)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

Can anyone please tell me whats the mistake here?

3
  • a line number would be very helpful. Commented Jan 23, 2012 at 17:05
  • Post the method that's called on the "click on save button", also the rest of the stacktrace. You can remove the entity definition. Commented Jan 23, 2012 at 17:05
  • @βнɛƨн Ǥʋяʋиɢ I've posted it. On save button's click event service variable is called which is bind with the above mentioned java service class.. Commented Jan 23, 2012 at 17:21

1 Answer 1

1

Here,

 public UserDemographicInfo sampleJavaOperation(UserDemographicInfo demopojo) {
   UserDemographicInfoDAO demodao=new UserDemographicInfoDAO();

and here

demodao.persist(demopojo, session);

UserDemographicInfo demopojo is null.

That code calls :

public void persist(UserDemographicInfo userDemographicInfo, Session session){
    session.save("UserDemographicInfo", userDemographicInfo);
}

and throws the error.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks a lot for your help.But I've just retrieved values from demopojo before persist. and its not null.
Yes. I am confused now.Even my current stacktrace is showing these msgs. 1. INFO - Starting sample operation. 2. INFO -Values inserted by user at runtime 3.INFO-Returning. But still values are not inserted into the database.I am not getting why?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.