我有一个问题。我有一个包含文本数据的注释,用户可以添加与该注释相关的多张照片。注释和照片存储在单独的表中,注释和照片的数据模型都使用与两个对象相关的数据扩展抽象对象。除此之外,“note”表是“photo”对象的外键。
两个对象都扩展的抽象类:
public abstract class SyncObject implements Parcelable {
public static final String ID = "_id";
public static final String DATE = "date";
public static final String IS_SAVED_TO_CLOUD = "isSavedToCloud";
public static final String TIME_STAMP = "timeStamp";
public static final String IS_DELETED = "isDeleted";
@DatabaseField(id = true, index = true, canBeNull = false, columnName = ID)
public String id;
@DatabaseField(columnName = DATE)
public String date;
@DatabaseField(columnName = IS_SAVED_TO_CLOUD)
public boolean isSavedToCloud;
@DatabaseField(columnName = TIME_STAMP)
public String timeStamp;
@DatabaseField(columnName = IS_DELETED)
public boolean isDeleted; }
这是笔记课程:
public class Note extends SyncObject implements Parcelable {
public static final String TITLE = "title";
public static final String DESCRIPTION = "description";
@DatabaseField(columnName = TITLE)
public String title;
@DatabaseField(columnName = DESCRIPTION)
public String description; }
照片课:
public class Photo extends SyncObject{
public static final String FIELD_REF = "note";
public static final String PHOTO = "photo";
public static final String THUMBNAIL = "thumbnail";
@DatabaseField(columnName = PHOTO)
public String photoUrl;
@DatabaseField(columnName = THUMBNAIL)
public String thumbnailUrl;
@DatabaseField(columnName = FIELD_REF, canBeNull = false, foreign = true, foreignAutoRefresh = true)
public Note note;
所以,在这里开始吧。 我想在列表中显示与note相关的照片,但是使用连接表获取光标会产生具有相同字段的数据,并且通过这些字段查询没有任何意义。基本上,我想在列表中显示一张带有一张照片的笔记。
我尝试使用2个游标执行此操作,但没有任何成功。我是否在加入游标或首先创建游标时出错?
我有Content Provider创建2个游标,一个用于记事本,一个用于照片数据。我能够在一个列表中显示数据。有没有办法用一个光标显示来自多个(注释和照片)表的数据?
使用相同字段创建带有rawQuerry创建表的游标,并且在列表中显示注释时,我不需要SyncObject中的字段用于照片。
我使用的查询:Cursor c = db.rawQuery("SELECT * FROM note INNER JOIN photos ON note = photos.note WHERE photos.note = note", null);
提前致谢,如果有人需要更多信息,请更新此信息,谢谢!