从会议室列表中获取项目

时间:2018-08-16 11:39:58

标签: android android-sqlite android-room

我有一个实体,其结构如下:

@Entity
public class MenuModel
{
    @PrimaryKey
    private Long id;
    List<CustomObject> objectList;

    // getset
}

public class CustomObject
{
    private List<AnotherCustomObject> anotherCustomList;
}

自定义对象不是是实体,并且进一步嵌套了也不是实体的自定义对象。

我为我的所有列表类及其子类写了TypeConverter。下面是一个示例:

public class ForcedModTypeConverter
{
    @TypeConverter
    public static List<ForcedModifier> stringToObject(String data)
    {
        if(data == null)
        {
            return Collections.emptyList();
        }

        Gson gson = new Gson();
        Type type = new TypeToken<List<ForcedModifier>>(){}.getType();
        return gson.fromJson(data, type);
    }

    @TypeConverter
    public static String objectToString(List<ForcedModifier> data)
    {
        Gson gson = new Gson();
        return gson.toJson(data);
    }
}

我的问题是,如果我想从该自定义对象列表中访问一个对象,该怎么做?

我试图像这样使用@Query

@Query("SELECT * FROM AnotherCustomObject)
List<AnotherCustomObject> getSecondaryCustomObjects();

但是即使我创建了自定义对象@Entities,该操作也不起作用。那么,如何查询自定义对象列表中实体的子对象?

0 个答案:

没有答案