AzureMobileService:在表给出了异常插入数据出了、异常、数据、AzureMobileService

2023-09-07 00:12:03 作者:咸鱼

我是新来的Azure实现移动服务。我指的演示内的TodoItem 通过Azure中给出。

I am new to implement Azure Mobile Service. I have refer the demo of ToDoItem given by Azure.

在相同的方式,我有使类的用户自己的应用程序。然后我在插入数据到MobileServiceTable,但它给了我错误象下面这样:

In same manner i have make class User for my own app. Then I am inserting the data in to the MobileServiceTable but it gives me error like below:

{"message":"The operation failed with the following error: 'A null store-generated value was returned for a non-nullable member 'CreatedAt' of type 'CrazyLabApp.Models.User'.'."}

我还没有创建任何这样的领域,因为它不是在内的TodoItem示范创建。我看到,有4场是由MobileServiceTable创建默认。 createdAt是该字段中的一个。

I have not created any field like this as it is not created in ToDoItem demo as well. I have seen that there are 4 fields that are by Default created by the MobileServiceTable. createdAt is one of the field of that.

我想知道什么是错我在做什么。

I am wonder about whats wrong i am doing.

检查下面UserClass的我:

Check my below Userclass:

   public class User {
    @com.google.gson.annotations.SerializedName("id")
    private String ServiceUserId;

    @com.google.gson.annotations.SerializedName("email")
    private String Email;

    @com.google.gson.annotations.SerializedName("firstname")
    private String FirstName;

    @com.google.gson.annotations.SerializedName("lastname")
    private String LastName;

    @com.google.gson.annotations.SerializedName("profilepic")
    private String ProfilePic;

    @com.google.gson.annotations.SerializedName("introduction")
    private String Introduction;

    @com.google.gson.annotations.SerializedName("website")
    private String Website;

    @com.google.gson.annotations.SerializedName("title")
    private String Title;

    @com.google.gson.annotations.SerializedName("_createdAt")
    private Date CreatedAt;

    @com.google.gson.annotations.SerializedName("coverimage")
    private ArrayList<CoverImage> CoverImages;

    /*public Date getCreatedAt() {
        return CreatedAt;
    }

    public void setCreatedAt(Date createdAt) {
        CreatedAt = createdAt;
    }*/

    @com.google.gson.annotations.SerializedName("followers")
    private ArrayList<User> Followers;

    @com.google.gson.annotations.SerializedName("likes")
    private ArrayList<Likes> Likes;

    @com.google.gson.annotations.SerializedName("collections")
    private ArrayList<Collections> Collections;

    @com.google.gson.annotations.SerializedName("comments")
    private ArrayList<Comments> Comments;

    @com.google.gson.annotations.SerializedName("stories")
    private ArrayList<Story> Stories ;




    //-------------- Methods
    public ArrayList<Story> getStories() {
        return Stories;
    }

    public void setStories(ArrayList<Story> stories) {
        Stories = stories;
    }

    public ArrayList<com.promact.crazylab.model.Comments> getComments() {
        return Comments;
    }

    public void setComments(ArrayList<com.promact.crazylab.model.Comments> comments) {
        Comments = comments;
    }

    public ArrayList<com.promact.crazylab.model.Collections> getCollections() {
        return Collections;
    }

    public void setCollections(ArrayList<com.promact.crazylab.model.Collections> collections) {
        Collections = collections;
    }

    public ArrayList<com.promact.crazylab.model.Likes> getLikes() {
        return Likes;
    }

    public void setLikes(ArrayList<com.promact.crazylab.model.Likes> likes) {
        Likes = likes;
    }

    public ArrayList<User> getFollowers() {
        return Followers;
    }

    public void setFollowers(ArrayList<User> followers) {
        Followers = followers;
    }

    public ArrayList<CoverImage> getCoverImages() {
        return CoverImages;
    }

    public void setCoverImages(ArrayList<CoverImage> coverImages) {
        CoverImages = coverImages;
    }

    public String getTitle() {
        return Title;
    }

    public void setTitle(String title) {
        Title = title;
    }

    public String getWebsite() {
        return Website;
    }

    public void setWebsite(String website) {
        Website = website;
    }

    public String getIntroduction() {
        return Introduction;
    }

    public void setIntroduction(String introduction) {
        Introduction = introduction;
    }

    public String getLastName() {
        return LastName;
    }

    public void setLastName(String lastName) {
        LastName = lastName;
    }

    public String getProfilePic() {
        return ProfilePic;
    }

    public void setProfilePic(String profilePic) {
        ProfilePic = profilePic;
    }

    public String getEmail() {
        return Email;
    }

    public void setEmail(String email) {
        Email = email;
    }

    public String getFirstName() {
        return FirstName;
    }

    public void setFirstName(String firstName) {
        FirstName = firstName;
    }

    public String getServiceUserId() {
        return ServiceUserId;
    }

    public void setServiceUserId(String serviceUserId) {
        ServiceUserId = serviceUserId;
    }

    @Override
    public boolean equals(Object o) {
        return o instanceof User && ((User) o).ServiceUserId == ServiceUserId;
    }

}

另外,请检查下面code我正在插入的方式:

Also check below code the way i am inserting it:

final User u = new User();
u.setFirstName(mName);
u.setEmail(mEmail);
u.setProfilePic(mUrl);

mUserTable = mClient.getTable(User.class);

             // Insert the new item
             new AsyncTask<Void, Void, Void>(){
             @Override
             protected Void doInBackground(Void... params) {
                    try {
                           final User entity = mUserTable.insert(u).get();

                     } catch (Exception e){
                        //createAndShowDialog(e, "Error");
                        System.out.println("Error: "+e.toString());

                     }
             return null;
             }
     }.execute();

请帮我在这。

推荐答案

在_createdat栏会自动的Azure移动服务人口,所以没有必要把它列入你的模型。删除User类此属性。它的presence大概覆盖了空的自动填充值。

The "_createdat" column will be populated automatically by Azure Mobile Services so there is no need to include it in your model. Delete this property from the User class. Its presence is probably overwriting the auto-populated value with a null.