android litepal数据库联表时外键被置空

瓦大喜s 2020-04-03 03:45:21
最近学习android 使用数据库时了解到litepal
就做了一个小demo
需要建立的关系是
用户——任务 1:n
用户——商品 1:n
资料参考的是郭霖老师的博客
https://blog.csdn.net/guolin_blog/article/details/39207945

当任务创建好后查看数据库外键是关联好的且连上了用户id图片说明

商品那边同样创建后查看数据库 外键也一样是关联好的图片说明

可这时候发现原来任务界面的数据消失了 后来查看到数据库发现是外键被置空了图片说明

所以求各位大佬帮忙解决下这个问题,谢谢!

Duty duty = new Duty();
duty.setTime(simpleDateFormat.format(date));
duty.setHead(duty_head);
duty.setPriority(priority);
if (duty_category.equals("每日任务")) {
duty.setCategory(1);
Log.d(TAG, "onClick: 分类到每日任务");
} else if (duty_category.equals("每周任务")) {
duty.setCategory(2);
Log.d(TAG, "onClick: 分类到每周任务");
} else if (duty_category.equals("每月任务")) {
duty.setCategory(3);
Log.d(TAG, "onClick: 分类到每月任务");
}
if ((TextUtils.isEmpty(duty_head))) {
Toast.makeText(DutyCreate.this, "有什么样的目标,就有什么样的人生", Toast.LENGTH_SHORT).show();
}


if ((TextUtils.isEmpty(duty_achp))) {
Toast.makeText(DutyCreate.this, "凡事都有存在的价值", Toast.LENGTH_SHORT).show();
} else {
if (isNumeric(duty_achp)) {

SharedPreferences preferences=getSharedPreferences("data",MODE_PRIVATE);
String currentUser=preferences.getString("currentUser","null");
int currentUser_id=preferences.getInt("currentUser_id",0);

duty.setAchp(Integer.parseInt(duty_achp));
duty.setOver(false);
//duty.setUser(currentUser);
duty.save();

List <User> CUser= LitePal.where("account=?",currentUser).find(User.class);
for(User cuser : CUser)
{
cuser.getDutyList().add(duty);
cuser.save();
}




Shop shop = new Shop();

shop.setShop_name(shophead);
/* shop.setShop_pay(Integer.parseInt(pay));*/
shop.setLove(love);

if (TextUtils.isEmpty(shophead)) {
Toast.makeText(ShopCreate.this, "有什么样的目标,就有什么样的人生", Toast.LENGTH_SHORT).show();

}else {

if ((TextUtils.isEmpty(pay))) {
Toast.makeText(ShopCreate.this, "凡事都有存在的价值", Toast.LENGTH_SHORT).show();
} else {
if (isNumeric(pay)) {
shop.setShop_pay(Integer.parseInt(pay));
shop.setOver(false);
shop.save();
SharedPreferences preferences=getSharedPreferences("data",MODE_PRIVATE);
String currentUser=preferences.getString("currentUser","null");

List<User> CUser= LitePal.where("account=?",currentUser).find(User.class);
for(User cuser : CUser)
{
cuser.getShopList().add(shop);
if(cuser.save())
{
Log.d(TAG, "onClick: 保存成功!!!!!!!!!!!!!");
}

}
...全文
71 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧