我正在尝试在房间里做这件事
here the link of the diagram of the database
现在我有这个
Productor.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.Index;
import android.arch.persistence.room.PrimaryKey;
@Entity(indices = @Index(value = "codigo_Pro",unique = true))
public class Productor {
@PrimaryKey @ColumnInfo(name = "codigo_Pro") private int codigo_Pro;
@ColumnInfo(name = "nombre_productor") private String nombre_productor;
public Productor(int codigo_Pro, String nombre_productor) {
this.codigo_Pro = codigo_Pro;
this.nombre_productor = nombre_productor;
}
public int getCodigo_Pro() {
return codigo_Pro;
}
public String getNombre_productor() {
return nombre_productor;
}
}
Area.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.Index;
import android.support.annotation.NonNull;
@Entity(primaryKeys = {"codigo_area","codigo_fic"},
indices = {@Index(value = {"codigo_area","codigo_fic"},unique = true)})
public class Area {
@ColumnInfo(name = "codigo_area") @NonNull private String numero_ArC;
@ColumnInfo(name = "codigo_fic") @NonNull private String codigo_FiC;
@ColumnInfo(name = "nombre_area") private String nombre_ArC;
public Area(String numero_ArC,String codigo_FiC, String nombre_ArC) {
this.numero_ArC = numero_ArC;
this.nombre_ArC = nombre_ArC;
this.codigo_FiC = codigo_FiC;
}
public String getCodigo_FiC() {
return codigo_FiC;
}
public String getNumero_ArC() {
return numero_ArC;
}
public String getNombre_ArC() {
return nombre_ArC;
}
public void setNumero_ArC(String numero_ArC) {
this.numero_ArC = numero_ArC;
}
public void setNombre_ArC(String nombre_ArC) {
this.nombre_ArC = nombre_ArC;
}
}
Inspector.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.ForeignKey;
import android.arch.persistence.room.Index;
import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
import com.google.gson.annotations.SerializedName;
@Entity(indices = @Index(value = "codigo_Ins",unique = true))
public class Inspector {
@PrimaryKey @ColumnInfo(name = "codigo_Ins") @NonNull private String codigo_Ins;
private String apellidoPat_Ins;
private String apellidoMat_Ins;
private String nombres_Ins;
private String nombre_Loc;
private String sexo_Ins;
private String direccion;
private int campaña;
public Inspector(String codigo_Ins, String apellidoPat_Ins, String apellidoMat_Ins, String nombres_Ins, String nombre_Loc, String sexo_Ins, String direccion, int campaña) {
this.codigo_Ins = codigo_Ins;
this.apellidoPat_Ins = apellidoPat_Ins;
this.apellidoMat_Ins = apellidoMat_Ins;
this.nombres_Ins = nombres_Ins;
this.nombre_Loc = nombre_Loc;
this.sexo_Ins = sexo_Ins;
this.direccion = direccion;
this.campaña = campaña;
}
public String getCodigo_Ins() {
return codigo_Ins;
}
public void setCodigo_Ins(String codigo_Ins) {
this.codigo_Ins = codigo_Ins;
}
public String getApellidoPat_Ins() {
return apellidoPat_Ins;
}
public void setApellidoPat_Ins(String apellidoPat_Ins) {
this.apellidoPat_Ins = apellidoPat_Ins;
}
public String getApellidoMat_Ins() {
return apellidoMat_Ins;
}
public void setApellidoMat_Ins(String apellidoMat_Ins) {
this.apellidoMat_Ins = apellidoMat_Ins;
}
public String getNombres_Ins() {
return nombres_Ins;
}
public void setNombres_Ins(String nombres_Ins) {
this.nombres_Ins = nombres_Ins;
}
public String getNombre_Loc() {
return nombre_Loc;
}
public void setNombre_Loc(String nombre_Loc) {
this.nombre_Loc = nombre_Loc;
}
public String getSexo_Ins() {
return sexo_Ins;
}
public void setSexo_Ins(String sexo_Ins) {
this.sexo_Ins = sexo_Ins;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public int getCampaña() {
return campaña;
}
public void setCampaña(int campaña) {
this.campaña = campaña;
}
}
Pregunta.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.ForeignKey;
import android.arch.persistence.room.Index;
import android.support.annotation.NonNull;
@Entity(foreignKeys = {@ForeignKey(entity = Area.class,parentColumns = "codigo_area",childColumns = "codigo_area"),
@ForeignKey(entity = Area.class,parentColumns = "codigo_fic",childColumns = "codigo_fic")},
primaryKeys = {"codigo_pregunta","codigo_area","codigo_fic"},
indices = {@Index(value = {"codigo_pregunta"},unique = true)})
public class Pregunta {
@ColumnInfo(name = "codigo_pregunta") @NonNull public String numero_Pre;
@ColumnInfo(name = "codigo_area") @NonNull public String codigo_area_foraneo;
@ColumnInfo(name = "codigo_fic") @NonNull public String codigo_fic_foraneo;
@ColumnInfo(name = "descripcion_pregunta") public String descripcion_Pre;
@ColumnInfo(name = "puntaje_pregunta") public int puntaje_Pre;
@ColumnInfo(name = "prioridad_ pregunta") public boolean prioridad_Pre;
public Pregunta(String numero_Pre, String codigo_area_foraneo, String codigo_fic_foraneo, String descripcion_Pre, int puntaje_Pre, boolean prioridad_Pre) {
this.numero_Pre = numero_Pre;
this.descripcion_Pre = descripcion_Pre;
this.puntaje_Pre = puntaje_Pre;
this.prioridad_Pre = prioridad_Pre;
this.codigo_area_foraneo = codigo_area_foraneo;
this.codigo_fic_foraneo = codigo_fic_foraneo;
}
public String getNumero_Pre() {
return numero_Pre;
}
public String getDescripcion_Pre() {
return descripcion_Pre;
}
public int getPuntaje_Pre() {
return puntaje_Pre;
}
public boolean isPrioridad_Pre() {
return prioridad_Pre;
}
public String getCodigo_area_foraneo() {
return codigo_area_foraneo;
}
public String getCodigo_fic_foraneo() {
return codigo_fic_foraneo;
}
}
Inspeccion.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.ForeignKey;
import android.arch.persistence.room.Index;
import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
@Entity(foreignKeys = {@ForeignKey(entity = Inspector.class,parentColumns = "codigo_Ins",childColumns = "codigo_Ins"),
@ForeignKey(entity = Productor.class,parentColumns = "codigo_Pro",childColumns = "codigo_Pro")},
primaryKeys = {"numero_Pri","codigo_Ins","codigo_Pro","codigo_Cam"},
indices = {@Index(value = {"numero_Pri","codigo_Cam"},unique = true),
@Index(value = "codigoPro",unique = true),@Index(value = "codigo_Ins",unique = true)})
public class Inspeccion {
@ColumnInfo(name = "numero_Pri") private int numero_PrI;
@ColumnInfo(name = "codigo_Cam") private int codigo_Cam;
@ColumnInfo(name = "codigo_Ins") @NonNull private String codigo_Ins;
@ColumnInfo(name = "codigo_Pro") private int codigo_Pro;
@ColumnInfo(name = "programacion") private String programacion;
@ColumnInfo(name = "fecha") private String fecha;
@ColumnInfo(name = "estado") private String estado;
public Inspeccion(int numero_PrI, int codigo_Cam, String codigo_Ins, int codigo_Pro, String programacion, String fecha, String estado) {
this.numero_PrI = numero_PrI;
this.codigo_Cam = codigo_Cam;
this.codigo_Ins = codigo_Ins;
this.codigo_Pro = codigo_Pro;
this.programacion = programacion;
this.fecha = fecha;
this.estado = estado;
}
public int getNumero_PrI() {
return numero_PrI;
}
public int getCodigo_Cam() {
return codigo_Cam;
}
public String getCodigo_Ins() {
return codigo_Ins;
}
public int getCodigo_Pro() {
return codigo_Pro;
}
public String getProgramacion() {
return programacion;
}
public String getFecha() {
return fecha;
}
public String getEstado() {
return estado;
}
}
Resultado.class
package com.example.proyecto2avance.Local.Model;
import android.arch.persistence.room.ColumnInfo;
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.ForeignKey;
import android.arch.persistence.room.PrimaryKey;
import android.support.annotation.NonNull;
@Entity(foreignKeys = {@ForeignKey(entity = Inspeccion.class,parentColumns = "codigo_Pro",childColumns = "codigo_Pro"),
@ForeignKey(entity = Inspeccion.class,parentColumns = "codigo_Ins",childColumns = "codigo_Ins"),
@ForeignKey(entity = Inspeccion.class,parentColumns = "codigo_Cam",childColumns = "codigo_Cam"),
@ForeignKey(entity = Inspeccion.class,parentColumns = "numero_Pri",childColumns = "numero_Pri"),
@ForeignKey(entity = Pregunta.class,parentColumns = "codigo_pregunta",childColumns = "codigo_pregunta"),
@ForeignKey(entity = Pregunta.class,parentColumns = "codigo_area",childColumns = "numero_area"),
@ForeignKey(entity = Pregunta.class,parentColumns = "codigo_fic",childColumns = "codigo_fic")},
primaryKeys = {"numero_Res","codigo_pregunta","codigo_fic","numero_area","codigo_Cam","numero_Prl","codigo_Ins"})
public class Resultado {
@PrimaryKey(autoGenerate = true)@ColumnInfo(name = "numero_Res") private int numero_Res;
@ColumnInfo(name = "codigo_pregunta") @NonNull private String numero_Pre;
@ColumnInfo(name = "codigo_fic") @NonNull private String codigo_FiC;
@ColumnInfo(name = "numero_area") @NonNull private String numero_ArC;
@ColumnInfo(name = "codigo_Cam") private int codigo_Cam;
@ColumnInfo(name = "numero_Prl") private int numero_Prl;
@ColumnInfo(name = "codigo_Ins") @NonNull private String codigo_Ins;
@ColumnInfo(name = "codigo_Pro") private int codigo_Pro;
@ColumnInfo(name = "puntaje_Res") private Double puntaje_Res;
@ColumnInfo(name = "observacion") private String observacion;
public Resultado(String numero_Pre, String codigo_FiC, String numero_ArC, int codigo_Cam, int numero_Prl, String codigo_Ins, int codigo_Pro, Double puntaje_Res, String observacion) {
this.numero_Pre = numero_Pre;
this.codigo_FiC = codigo_FiC;
this.numero_ArC = numero_ArC;
this.codigo_Cam = codigo_Cam;
this.numero_Prl = numero_Prl;
this.codigo_Ins = codigo_Ins;
this.codigo_Pro = codigo_Pro;
this.puntaje_Res = puntaje_Res;
this.observacion = observacion;
}
public int getNumero_Res() {
return numero_Res;
}
public void setNumero_Res(int numero_Res) {
this.numero_Res = numero_Res;
}
public String getNumero_Pre() {
return numero_Pre;
}
public String getCodigo_FiC() {
return codigo_FiC;
}
public String getNumero_ArC() {
return numero_ArC;
}
public int getCodigo_Cam() {
return codigo_Cam;
}
public int getNumero_Prl() {
return numero_Prl;
}
public String getCodigo_Ins() {
return codigo_Ins;
}
public int getCodigo_Pro() {
return codigo_Pro;
}
public Double getPuntaje_Res() {
return puntaje_Res;
}
public String getObservacion() {
return observacion;
}
}
但是我有一些错误和警告
Inspeccion.class -codigo_Ins列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-codigo_Pro列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
Pregunta.class
-codigo_area列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-错误:com.example.proyecto2avance.Local.Model.Resultado有一个外键(codigo_pregunta),它引用com.example.proyecto2avance.Local.Model.Pregunta(codigo_pregunta)但引用了com.example.proyecto2avance.Local.Model .Pregunta在这些列上没有唯一索引,这些列也不是其主键。 SQLite要求对引用的父列具有唯一约束,因此您必须向具有(codigo_pregunta)列的com.example.proyecto2avance.Local.Model.Pregunta添加唯一索引。
Resultado.class
-错误:您不能在一个实体中定义多个主键。如果要声明复合主键,则应使用@ Entity#primaryKeys而不是@PrimaryKey。定义的主键:PrimaryKey [numero_Res,numero_Pre,codigo_FiC,numero_ArC,codigo_Cam,numero_Prl,codigo_Ins],PrimaryKey [numero_Res]
-codigo_Pro列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-codigo_Ins列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-codigo_Cam列引用一个外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-codigo_pregunta列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
-numero_area列引用外键,但它不是索引的一部分。每当修改父表时,这都可能触发全表扫描,因此强烈建议您创建一个覆盖此列的索引。
Area.class
-错误:com.example.proyecto2avance.Local.Model.Pregunta有一个外键(codigo_area),它引用com.example.proyecto2avance.Local.Model.Area(codigo_area)但引用了com.example.proyecto2avance.Local.Model .Area在这些列上没有唯一索引,这些列也不是其主键。 SQLite要求对引用的父列具有唯一约束,因此您必须向具有(codigo_area)列的com.example.proyecto2avance.Local.Model.Area添加唯一索引。
如果您能帮助我,我将不胜感激,我已经尽力了,但是我对此还很陌生,我在等待您的帮助,谢谢