Search code examples
androiddatabaseandroid-studiosqliteormlite

Select rows comparing two column value in ormlite while using raw query


I have the following database table

@DatabaseTable(tableName = "Order_Details")
public class DB_OrderDetails {

@DatabaseField(generatedId = true)
private int id;

@DatabaseField()
private int order_id_from_order_table;

@DatabaseField()
private String medicine_code;

@DatabaseField()
private String medicine_name;

@DatabaseField()
private String medicine_type;

@DatabaseField()
private int number_of_units_ordered;

@DatabaseField()
private String generic_name;

@DatabaseField()
private String manufacturer_name;

@DatabaseField()
private double ordering_cost;
... }

I am using ormlite for my local db operations. i want to get the result for

SELECT * FROM Order_Details WHERE (medicine_code='xxxx' AND manufacturer_name='yyyy')

and want to get the result returned in

List<DB_OrderDetails> 

can anybody suggest me a way to do it?


Solution

  • Use an object of the Where class to build your query.

    List<DB_OrderDetails> list;
    try {
            Dao<DB_OrderDetails, String> dbOrderDetailsStringDao = dbHelper.getOrderDetailsDao();
            QueryBuilder<DB_OrderDetails, String> queryBuilder = dbOrderDetailsStringDao.queryBuilder();
    
            Where where = queryBuilder.where();
            where.eq("medicine_code", "xxxx");
            where.and();
            where.eq("manufacturer_name", "yyyy");
    
            PreparedQuery<DB_OrderDetails> preparedQuery = queryBuilder.prepare();
            list = dbOrderDetailsStringDao.query(preparedQuery);
    } catch (SQLException e) {
            e.printStackTrace();
    }