2011-09-16 11 views
7

Sto cercando di query per una data tra il valore basso e hign:interrogazione ORMLite per la data

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()); 

oggetto Car appare in questo modo:

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 sto ottenendo alcun risultato. Dove potrebbe essere un problema?

risposta

8

Ecco il tuo problema: hai fatto un errore di incisione &. Hai fissato il domani uguale a oggi, poi inavvertitamente fissato ieri pari a domani. Non ci sono giorni più grandi di domani e meno di oggi, quindi non hai più indietro le righe.

modificare il codice per assomigliare a questo:

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

Grande! Grazie mille. – sealskej

+0

In 2 minuti. Non aver paura;) – sealskej

Problemi correlati