Grails - 保存当前对象用 null 或 0 替换所有先前对象的值

Grails - Saving current object replace all previous object's values with null or 0

下面是保存用户对象并在控制台打印用户列表的代码。

index.gsp

<g:form action="signUp" controller="User">
    E-mail Id :: <g:textField name="emailId" type="text"/><br>
    Mobile Number :: <g:textField name="mobileNumber" type="text" /> <br>
    <g:submitButton name="Sign up"/>
</g:form>

User.groovy

class User {
    private String emailId;
    private int mobileNumber;
}

UserController.groovy

class UserController {

    def signUp() {

        def user = new User(params);
        user.save();

        List<User> userList = User.list();

        print "Size of list::"+userList.size();
        for(User user1 : userList){
            print "User Id::"+user1.id; 
            print "Email id::"+user1.emailId;
            print "Mobile Number::"+user1.mobileNumber;
        }
    }
}

目前我还没有添加任何服务层。以下是我的输入和各自的输出。

输入-1

Email - id : test@test.com 
Mobile number : 1234

输出-1 :

....Size of list::1
User Id::1
Email id::test@test.com
Mobile Number::1234

太棒了,现在我再插入一位用户。

输入-2

Email - id : sample@sample.com 
Mobile number : 5678

输出 2

Size of list::2
User Id::1
Email id::null
Mobile Number::0
User Id::2
Email id::sample@sample.com
Mobile Number::5678

它将用 null 或 0(如果是整数)替换所有以前的记录。

您绝不能将域属性定义为 private fields!