How to get the attributes of another object with OrmLite in android?

0

I am working with OrmLite on android, I can obtain the attributes of my Debtor object with this code, but if I access the Debt object from Debtor, it returns null the attributes. On the other hand, if I access directly from the Debt object if the records appear I do not know what I could be doing wrong ...

 Dao dao;
        try {
            dao = getHelper().getDeudorDao();
            Deudor deudor = (Deudor) dao.queryForId(1);
            if (deudor == null) {
                Log.d("bnx", "Ningún deudor");
            } else {
                List<Deudor> de = dao.queryForAll();
                for(Deudor d:de){
                    Log.d("bnx","objeto deudor.nombre: "+d.getNombre());
                    Log.d("bnx","objeto deudor.objeto.deuda.tostring: "+d.getDeuda().toString());

                }
            }
        } catch (SQLException e) {
            Log.e("bnx", "Error");
        }

log

03-02 10:35:20.701 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Bruno
03-02 10:35:20.701 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=1, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.701 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Isis
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=2, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Pedro
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=3, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Carlos
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=4, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Hug
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=5, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Pablo
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=6, descripcion='null', fecha=null, monto=null, restante=null, abono=null}
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.nombre: Guss
03-02 10:35:20.702 9182-9182/com.brunox.myapp D/bnx: objeto deudor.objeto.deuda.tostring: Deuda{id=7, descripcion='null', fecha=null, monto=null, restante=null, abono=null}

debtor object

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable
public class Deudor {

    @DatabaseField(generatedId = true, columnName = "id")
    private Integer id;

    @DatabaseField(columnName = "nombre")
    private String nombre;

    @DatabaseField(columnName = "telefono")
    private Integer telefono;

    @DatabaseField(foreign = true, columnName = "deuda")
    private Deuda deuda;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Integer getTelefono() {
        return telefono;
    }

    public void setTelefono(Integer telefono) {
        this.telefono = telefono;
    }

    public Deuda getDeuda() {
        return deuda;
    }

    public void setDeuda(Deuda deuda) {
        this.deuda = deuda;
    }
}

debt object

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

import java.util.Date;

@DatabaseTable
public class Deuda {

    @DatabaseField(generatedId = true, columnName = "id")
    private Integer id;

    @DatabaseField(columnName = "descripcion")
    private String descripcion;

    @DatabaseField(columnName = "fecha")
    private Date fecha;

    @DatabaseField(columnName = "monto")
    private Float monto;

    @DatabaseField(columnName = "restante")
    private Float restante;

    @DatabaseField(foreign = true, columnName = "abono")
    private Abono abono;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Float getMonto() {
        return monto;
    }

    public void setMonto(Float monto) {
        this.monto = monto;
    }

    public Float getRestante() {
        return restante;
    }

    public void setRestante(Float restante) {
        this.restante = restante;
    }

    public Abono getAbono() {
        return abono;
    }

    public void setAbono(Abono abono) {
        this.abono = abono;
    }

    @Override
    public String toString() {
        return "Deuda{" +
                "id=" + id +
                ", descripcion='" + descripcion + '\'' +
                ", fecha=" + fecha +
                ", monto=" + monto +
                ", restante=" + restante +
                ", abono=" + abono +
                '}';
    }
}

DbHelper

import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.brunox.myapp.Entity.Abono;
import com.brunox.myapp.Entity.Deuda;
import com.brunox.myapp.Entity.Deudor;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

public class DBHelper extends OrmLiteSqliteOpenHelper {

    private static final String DATABASE_NAME = "db_deudores.db";
    private static final int DATABASE_VERSION = 1;

    private Dao<Deudor, Integer> deudorDao;
    private Dao<Deuda, Integer> deudaDao;
    private Dao<Abono, Integer> abonoDao;

    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, Deudor.class);
            TableUtils.createTable(connectionSource, Deuda.class);
            TableUtils.createTable(connectionSource, Abono.class);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        onCreate(db, connectionSource);
    }

    public Dao<Deudor, Integer> getDeudorDao() throws SQLException {
        if (deudorDao == null) {
            deudorDao = getDao(Deudor.class);
        }
        return deudorDao;
    }

    public Dao<Deuda, Integer> getDeudaDao() throws SQLException {
        if (deudaDao == null) {
            deudaDao = getDao(Deuda.class);
        }
        return deudaDao;
    }

    public Dao<Abono, Integer> getAbonoDao() throws SQLException {
        if (abonoDao == null) {
            abonoDao = getDao(Abono.class);
        }
        return abonoDao;
    }

    @Override
    public void close() {
        super.close();
        deudorDao = null;
        deudaDao = null;
        abonoDao = null;
    }

}
    
asked by goku venz 02.03.2018 в 17:48
source

0 answers