Я пытаюсь сделать это BD в комнате
здесь ссылка на схему базы данных
пока у меня есть это
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 столбец ссылается на внешний ключ, но он не является частью индекса. Это может вызвать полное сканирование таблицы при изменении родительской таблицы, поэтому настоятельно рекомендуется создать индекс, охватывающий этот столбец.
-error: com.example.proyecto2avance.Local.Model.Resultado имеет внешний ключ (codigo_pregunta), который ссылается на com.example.proyecto2avance.Local.Model.Pregunta (codigo_pregunta), но com.example.prolectM2 .Pregunta не имеет уникального индекса для этих столбцов, и столбцы не являются его первичным ключом. SQLite требует наличия уникального ограничения на родительские столбцы, на которые ссылаются, поэтому вы должны добавить уникальный индекс в com.example.proyecto2avance.Local.Model.Pregunta, который имеет столбцы (codigo_pregunta).
Resultado.class
-error: Вы не можете иметь несколько первичных ключей, определенных в сущности. Если вы хотите объявить составной первичный ключ, вы должны использовать @ Entity # primaryKeys и не использовать @PrimaryKey. Определенные первичные ключи: PrimaryKey [цифра_Res, цифра_Pre, codigo_FiC, цифра_ArC, codigo_Cam, цифра_Prl, codigo_Ins], первичный ключ [цифра_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.Local. .Area не имеет уникального индекса для этих столбцов, и столбцы не являются его первичным ключом. SQLite требует наличия уникального ограничения на родительские столбцы, на которые ссылаются, поэтому вы должны добавить уникальный индекс в com.example.proyecto2avance.Local.Model.Area, который имеет столбцы (codigo_area).
Я был бы очень признателен, если бы вы мне помогли, я перепробовал все, что мог, но я все еще новичок в этом, я жду вашей помощи, спасибо