4

我正在创建一个移动应用程序,其用户定义如下:

public class UserObject extends SugarRecord<UserObject>
{
    public UUID Id;
    public String Name;
    public int DefaultSort;
    public String Username;
    public Date LastLogin;

    public UserObject()
    {

    }

    public UserObject(UUID id, String name, int defaultSort, String username, String password, Date lastLogin)
    {
        this.Id = id;
        this.Name = name;
        this.DefaultSort = defaultSort;
        this.Username = username;
        this.LastLogin = lastLogin;
    }
}

这些用户将从 API 中检索 - ID 作为唯一标识符(或 C# 中的 GUID)存储在数据库中。

当我在 users 表中输入新记录时,一切正常:

    DateTime dt = new DateTime();
    UUID newUID = UUID.randomUUID();
    UserObject newUser = new UserObject(newUID, "David", 1, "userOne", "password", dt.toDate());
    newUser.save();

但是,当我尝试检索该值时,出现错误:

无法从 Sqlite3 数据库中读取类。请检查字段 Id(java.util.UUID) 的类型

Sugar ORM(或 SQLite)是否根本不支持 UUID?如果我尝试使用 Joda DateTime,替换“LastLogin”,则该表根本不会构建,因此它看起来好像可以创建字段,只是不能检索/存储它们......

4

2 回答 2

0
于 2016-09-06T07:57:36.850 回答
0

您不应将 var 与 name 一起使用Id。Sugar 记录用于Id存储索引值。使用任何东西,除了Id

public class UserObject extends SugarRecord{
    public UUID uId;
    public String Name;
    public int DefaultSort;
    public String Username;
    public Date LastLogin;

    public UserObject()
    {

    }

    public UserObject(UUID uId, String name, int defaultSort, String username, String password, Date lastLogin)
    {
        this.uId= uId;
        this.Name = name;
        this.DefaultSort = defaultSort;
        this.Username = username;
        this.LastLogin = lastLogin;
    }
}

从 v1.4 开始不再需要使用 SugarRecord

于 2015-12-24T06:13:07.840 回答