2011-09-16 27 views
7

tôi đang cố gắng để truy vấn cho một ngày giữa giá trị thấp và hign:truy vấn ORMLite cho ngày

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

đối tượng xe trông theo cách này:

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 Tôi nhận được không có kết quả. Trường hợp có thể là một vấn đề?

Trả lời

8

Đây là vấn đề của bạn: bạn đã cắt một lỗi dán &. Bạn thiết lập ngày mai bằng ngày hôm nay, sau đó vô tình thiết lập ngày hôm qua bằng ngày mai. Không có ngày nào lớn hơn ngày mai và ít hơn ngày hôm nay, vì vậy bạn không còn hàng nào nữa.

Thay đổi mã của bạn trông như thế này:

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

Tuyệt vời! Cảm ơn nhiều. – sealskej

+0

Trong 2 phút. Đừng sợ;) – sealskej

Các vấn đề liên quan