2011-09-16 18 views
7

Estoy tratando de consulta para una fecha entre baja y brindase valor:consulta ORMLite Fecha

Car car = new Car(1, "octavia"); 
car.setManufactured(Calendar.getInstance().getTime()); 
Dao<Car, Integer> carDao = getHelper().getCarDao(); 

carDao.create(car); 

QueryBuilder<Car, Integer> carQb = carDao.queryBuilder(); 

Calendar yesteday = Calendar.getInstance(); 
yesteday.add(Calendar.DATE, -1); 

Calendar tommorrow = Calendar.getInstance(); 
yesteday.add(Calendar.DATE, 1); 

carQb.where().between("manufactured", yesteday.getTime(), tommorrow.getTime()); 
PreparedQuery<Car> query = carQb.prepare(); 

List<Car> cars = carDao.query(query); 

Log.d(TAG, cars.get(0).toString()); 

objeto coche se ve de esta manera:

public class Car { 

    @DatabaseField(id = true) 
    private int id; 
    @DatabaseField 
    String name; 
    @DatabaseField(foreign = true, foreignAutoRefresh = true) 
    User user; 
    @DatabaseField(foreign = true, foreignAutoRefresh = true) 
    private Brand brand; 
    @DatabaseField(columnName="manufactured") 
    private Date manufactured; 
} 

Unfortunaly estoy consiguiendo ningún resultado. ¿Dónde podría haber un problema?

Respuesta

8

Aquí es su problema: que cometió un error de pasta de corte &. Estableces mañana igual a hoy, y luego estableces inadvertidamente ayer igual a mañana. No hay días que sean mayores que mañana y menos que hoy, así que no tienes filas atrás.

cambiar el código para tener este aspecto:

Calendar tommorrow = Calendar.getInstance(); 
tomorrow.add(Calendar.DATE, 1); // change yesterday to tomorrow 
+0

Gran! Muchas gracias. – sealskej

+0

En 2 minutos. No tengas miedo;) – sealskej

Cuestiones relacionadas