2016-03-31 37 views
0

我有一個一流的產品與領域的ID,名稱,價格等,...Ebean只選擇特定的列

我只想獲取從表名稱..

現在使用的這個查詢

String sql = "select name from product where price = 100"; 
SqlQuery sqlQuery = Ebean.createSqlQuery(sql); 
    List<SqlRow> list = sqlQuery.findList(); 

什麼是找到使用列表中,但只獲取命名

List<product> list = product.find.where("price = 100").select("name").findList(); 

我不t時的alerternate方式hink下面的查詢是有效的,因爲它獲取的所有數據,並返回笏我們將其過濾

List<String> list = new ArrayList<String>(); 

    for(product p: product.find.select("name").findList()) 
    { 
     list.add(p.name); 
    } 


return list; 

回答

1

默認情況下.select("name")自動包括ID列。因此,在SQL中,您將看到'select t0.id,t0.name from ...'

如果您將setDistinct(true)添加到查詢中,那麼會告知Ebean不包含Id列,您將在SQL中看到'select distinct t0.name從...」

嘗試

product.find .where().eq("price", 100) .setDistrinct(true).select("name") .findList();

+0

感謝您的答覆..但它您正在使用什麼版本Ebean的返回所有列 –

+0

? –

+0

它必須是3.3.4,因爲我使用的是播放框架2.3.x –