activeandroid中的mId是什么?什么时候可以为空?

activeandroid中的mId是什么?什么时候可以为空?,android,orm,activeandroid,Android,Orm,Activeandroid,我正在使用active android创建并尝试保存一个表,但由于某些原因,该对象无法保存。我得到的错误是 java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference 在调试反编译的Model.class文件时,我发现在执行以下语句时发生异常 请注意,下面一行来自activeandroid的反编译Mode

我正在使用active android创建并尝试保存一个表,但由于某些原因,该对象无法保存。我得到的错误是

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
在调试反编译的Model.class文件时,我发现在执行以下语句时发生异常

请注意,下面一行来自activeandroid的反编译Model.class文件

long entityId1 = ((Model)e).getId().longValue();
它失败,出现上述异常。在catch块中,我观察到,对于所有非原语类型的字段,mId都是非null的,但是对于发生异常的字段,mId是null的。我试着在网上搜索,但大约在中午时只能找到一行

ActiveAndroid automatically creates another auto-increment ID column. This is mId.

那么,在这种情况下,它为什么不这样做呢。有人有主意吗?谢谢

好的,我找到了答案

从codepath我发现了

问题是,这是因为ActiveAndroid需要您保存 将所有对象分开。例如,在保存tweet之前,请确保 首先保存关联的用户对象。所以当你发推特时 引用用户在调用tweet.save之前,请确保使用user.save 因为存储用户需要将本地id设置为 tweet的外键

因此,在保存对象之前,我必须先保存非基本类型的对象字段