Suraj
Suraj

Reputation: 89

org.springframework.beans.NotReadablePropertyException: Invalid property 'user' of bean class [com.jit.model.Signup]:

i tried to save data in to table by spring but this error show when data submitted..

org.springframework.beans.NotReadablePropertyException: Invalid property 'user' of bean class [com.jit.model.Signup]: Bean property 'user' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

controller class

  @Controller
public class DatabaseController 
{
       @RequestMapping("/signup.htm")
       public String loginCheck(@ModelAttribute("bean") @Valid Signup bean,BindingResult result,HttpServletRequest request , HttpServletResponse response) throws IOException {

           Session session= HiberSession.getHiber();
           if (result.hasErrors()){
               return "signup";
           } else{
              session.save(bean);      
             return "abc";
           }

Bean class

@Entity
@Table(name="user")
public class Signup {
        @Id
        @GeneratedValue
        @Column(name="uid")
        private Integer uid;

        @NotEmpty
        @Column(name="name")
        private String name;

        @NotEmpty
        @Column(name="father_name")
        private String father;

        @NotEmpty
        @Size(min =4,max =10)
        @Column(name="password")
        private String pass;

        @NotEmpty
        @Length(min =10,max =10)
        @Column(name="contact")
        private String contact;

        @NotEmpty
        @Column(name="city")
        private String city;

        @NotNull
        @Column(name="introducer")
        private Integer introducer;

        @Column(name="status")
        private Integer status;

        @Column(name="amount")
        private Integer amount=400;

        public Integer getAmount() {
            return amount;
        }

        public void setAmount(Integer amount) {
            this.amount = amount;
        }

        public Integer getUid() {
            return uid;
        }

        public void setUid(Integer uid) {
            this.uid = uid;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getFather() {
            return father;
        }

        public void setFather(String father) {
            this.father = father;
        }

        public String getPass() {
            return pass;
        }

        public void setPass(String pass) {
            this.pass = pass;
        }

        public String getContact() {
            return contact;
        }

        public void setContact(String contact) {
            this.contact = contact;
        }

        public String getCity() {
            return city;
        }

        public void setCity(String city) {
            this.city = city;
        }

        public Integer getIntroducer() {
            return introducer;
        }

        public void setIntroducer(Integer introducer) {
            this.introducer = introducer;
        }

        public Integer getStatus() {
            return status;
        }

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

signup.jsp

<%@page language="java" contentType="text/html"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<html>
<head>
<style>
.error {
    color: #ff0000;
}

</style>
</head>
<body>
<c:if test="${not empty message}"><h2>${message}</h2></c:if>
<h3>New user registration form..</h3>
<form:form method="POST" commandName='bean' action="/jit/signup.htm">
        <table>
            <tr>
                <td>Name :</td>
                <td><form:input path="name"/></td>
                <td><form:errors path="name" cssClass="error"/></td>
                </tr>
            <tr>
                <td>Father Name :</td>
                <td><form:input path="father"/></td>
                <td><form:errors path="father" cssClass="error"/></td>
                </tr>
            <tr>

                <td>Password :</td>
                <td><form:password path="pass" /></td>
                <td><form:errors path="pass" cssClass="error" /></td>
            </tr>
                <tr>
                <td>Contact Number :</td>
                <td><form:input path="contact"/></td>
                <td><form:errors path="contact" cssClass="error"/></td>
                </tr>

                <tr>
                <td>City/Village :</td>
                <td><form:input path="city"/></td>
                <td><form:errors path="city" cssClass="error"/></td>
                </tr>
            <tr>

               <tr>
                <td>Introducer ID:</td>
                <td><form:input path="introducer"/></td>
                <td><form:errors path="introducer" cssClass="error"/></td>
                </tr>
            <tr>

                <td colspan="3"><input type="submit" /></td>
            </tr>
        </table>
    </form:form>


</body>
</html>

Upvotes: 2

Views: 6679

Answers (1)

Ankur Singhal
Ankur Singhal

Reputation: 26077

I'd say that you should avoid having table names that are reserved words, with hibernate. Sure you can escape it, but it may cause problems in the future (in a query for example). So the safest way is to name the table another way - say users

@Entity
@Table(name="users")
public class Signup {
}

Upvotes: 4

Related Questions