前言
九月裸辞从长沙跑到上海,跑了一个月的面试,本月中旬终于拿到了爱奇艺的高级工程师offer。
做Android开发整4年有余,但是这一年才是最充实的,我花一年时间努力,送给了自己一个完美的蜕变!
寒冬裁员潮给我的危机感
我普通本科毕业,在长沙待了四年,其中只换过两家公司。去年这个时候,公司业绩不好要裁人。主管平时跟我关系比较好,说我本来也在被裁的考率名额中的,他帮我跟领导说了一堆好话才没事。我请主管吃了一顿火锅。
但是我无法像以前那么心安理得混日子了。因为我去年首付买了房。原本想着每个月稳定税后拿个8k的工资。挺满足的(8k在长沙算中高水平了)
想不到我要求这么低还差点被淘汰了??
2.1.4、@Entity里的外键约束
同样以之前的Person作为父类,我们再定一个衣服类Clothes。(这里先省略Dao,Database,Room步骤,后面会细讲)
Clothes:
@Entity(foreignKeys = @ForeignKey(entity = Person.class,parentColumns = “uid”,childColumns = “father_id”))
public class Clothes {
@PrimaryKey(autoGenerate = true)
private int id;
private String color;
private int father_id;
//…省略get和set
}
好多人不知道外键约束是什么意思,这里我们先往里面插数据,然后我们看看db里的数据:
第一步:我们往Person里面插入2填数据
1、(uid =1 name = 岩浆 age =18)
2、(uid =2 name = 小学生 age=10);
第二部:我们往衣服里面插入3条数据
1、(id = 1 color = 红色 father_id = 1)
2、(id = 2 color = 黑色 father_id = 1)
3、(id = 3 color = 红色 father_id = 2)
这里其实显而易见,可以先认为,person岩浆有2件衣服,红色和黑色的衣服;person小学生有1件衣服,红色的衣服。我们看看表是怎么样的。意思就是用parentColumns = “uid”(person的uid字段)作为childColumns = “father_id”(clothes的father_id字段)。这里就相当于约束到了。先不急,我们看看2张表。
person表(后面会有教程,教你怎么看db数据库):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEafRvv0-1649750630762)(https://user-gold-cdn.xitu.io/2019/10/11/16dba6ad66ce7b6c?imageView2/0/w/1280/h/960/ignore-error/1)]
clothes表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-96k90PMX-1649750630763)(https://user-gold-cdn.xitu.io/2019/10/11/16dba6bc2f868066?imageView2/0/w/1280/h/960/ignore-error/1)]
那么为什么说是外键约束呢?当然这里有操作。如下:
@Entity(foreignKeys = @ForeignKey(onDelete = CASCADE,onUpdate = CASCADE,entity = Person.class,parentColumns = “uid”,childColumns = “father_id”))
public class Clothes {
}
这里我加了2个动作,在删除和更新的时候用了onDelete = CASCADE,onUpdate = CASCADE。这里动作有以下: