我正在尝试将一个对象插入到我的房间数据库中,但似乎只插入了主键。当我尝试访问它们时,附加的字符串列表和整数列表都是空的。
实体
@Entity
public class DayMenu{
@PrimaryKey @NonNull
private String dayDate;
@TypeConverters(IntegerConverter.class)
private List<Integer> dayRecipesID;
@TypeConverters(StringConverter.class)
private List<String> dayRecipesTitle;
道
@Dao
public interface DayMenuDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertDayMenu(DayMenu dayMenu);
@Query("select * from DayMenu")
List<DayMenu> getAll();
@Query("select * from DayMenu")
LiveData<List<DayMenu>> getAllLD();
@Query("select dayDate from DayMenu where DayMenu.dayDate = :day_date")
DayMenu getFromDate(String day_date);
}
当我查看 dayMenu(如下)时,它会在我将它发送到插入之前,将有两个包含正确数据的列表。但是,当我调用 getAll()、getAllLD() 或 getFromDate() 时,该信息要么未插入,要么未恢复。
主要活动
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (etDate.getText().length() != 0) {
String currentDate = etDate.getText().toString();
DayMenu dayMenu = new DayMenu();
dayMenu.setDayDate(currentDate);
List<Integer> recIDs = new ArrayList<>();
List<String> recTits = new ArrayList<>();
StringBuilder sb = new StringBuilder();
int childCount = linearLayoutParent.getChildCount();
if (childCount > 1) {
for (int i = 0; i < childCount - 1; i++) {
View linearLayoutChild = linearLayoutParent.getChildAt(i);
ViewGroup lLC = (ViewGroup) linearLayoutChild;
Button recipeButton = (Button) lLC.getChildAt(0);
recIDs.add(Integer.parseInt(recipeButton.getTag().toString()));
recTits.add(recipeButton.getText().toString());
}
这将显示保存到数据库的日期,我已经能够使用其他方法查看日期。但是,当我尝试访问 recipeIds 和 titles 时,列表为空。
我不太确定出了什么问题,似乎 insertDayMenu 只是插入实体主键。
慕雪6442864
相关分类