我正在构建一个Android应用,该应用将一些对象保存在数据库中。我对象的某些属性首先在Gson的Json中序列化。这是问题,我有一个Workout
类
public class Workout {
private UUID mId;
private Date mStartDate;
private Date mEndDate;
private List<PerformedExercise> mPerformedExercises;
private String mNotes;
}
和一个运动课
public class Exercise {
private UUID mId;
private String mName;
private String mCategory;
private List<PerformedExercise> mPerformedExercises;
}
这两个对象都将存储在数据库中。除List<PerformedExercise>
之外的所有内容都将另存为常规原始类型。该列表将首先在Json中序列化,然后存储。问题是Exercise
和Workout
的实例可以在PerformedExercise
中共享相同的List<PerformedExercise>
。在我的代码中,它们是对PerformedExercise
实例的引用。当我的代码序列化和反序列化时,我需要能够保留对这些PerformedExercise
的引用。这怎么可能?
答案 0 :(得分:0)
您需要为数据库创建单独的WorkoutDB模型,在该模型中您将使用对象列表 包含原始类型列表,例如儿童锻炼列表
例如:
public class WorkoutDB {
private UUID mId;
private Date mStartDate;
private Date mEndDate;
//list of Ids
private List<String> mIdsExercises;
private String mNotes;
}
因此,从基地获得锻炼后,您可以通过ID列表获得所有练习。