Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GreenDAO ToOne关系不起作用_Android_Sqlite_One To One_Greendao_Greendao Generator - Fatal编程技术网

Android GreenDAO ToOne关系不起作用

Android GreenDAO ToOne关系不起作用,android,sqlite,one-to-one,greendao,greendao-generator,Android,Sqlite,One To One,Greendao,Greendao Generator,我正在实现一个用户类,如下所示: @Entity public class User implements Serializable { /** Serial version UID */ static final long serialVersionUID = 200L; @Id /** The user system id */ private long id; @Index(unique = true) /** The user

我正在实现一个用户类,如下所示:

@Entity
public class User implements Serializable {

    /** Serial version UID */
    static final long serialVersionUID = 200L;

    @Id
    /** The user system id */
    private long id;

    @Index(unique = true)
    /** The user login username*/
    private String username;

    /** The user first name */
    private String firstName;

    /** The user last name*/
    public String lastName;

    @ToOne
    @NotNull
    /** The company this user belongs*/
    private Company company;

   ...
}
和公司

@Entity
public class Company extends JsonModel implements Serializable {

    /** Serial version UID */
    static final long serialVersionUID = 100L;

    @Id
    /** The sqlite record id */
    private long id;


    @NotNull
    /** The company public name */
    private String name;

...

}
@ToOne应该可以正常工作,因为我可以通过TABLE指令看到生成的UserDao:

public final static Property Company = new Property(6, long.class, "company", false, "COMPANY");
在应用程序流程中,我创建了一个用户实例(不是db),并为其设置了一个公司对象

然后我叫:

UserDao userDao = daoSession.getUserDao();
userDao.insert(user);
但是,我的应用程序无法指定公司不能为空。当我打开UserDao生成的类时,我看到bindValues在保存用户之前从未创建过公司

 @Override
    protected final void bindValues(DatabaseStatement stmt, User entity) {
        stmt.clearBindings();
        stmt.bindLong(1, entity.getDbId());
        stmt.bindLong(2, entity.getId());

        String username = entity.getUsername();
        if (username != null) {
            stmt.bindString(3, username);
        }

        String firstName = entity.getFirstName();
        if (firstName != null) {
            stmt.bindString(4, firstName);
        }

        String lastName = entity.getLastName();
        if (lastName != null) {
            stmt.bindString(5, lastName);
        }
    }
为了创建子实体,我必须做什么

编辑


好的,我刚刚读到关系不是由ORM自动管理的。我没有看到使用lib-hehe有多少好处。

好的,我刚刚读到ORM不会自动管理关系

所以我应该先插入公司