Playframework Ebean只能选择特定列

Playframework Ebean只能选择特定列,playframework,ebean,Playframework,Ebean,我有一个类产品与字段id,名称,价格等 我只想从表中取一个名字 我当前正在使用此查询 String sql = "select name from product where price = 100"; SqlQuery sqlQuery = Ebean.createSqlQuery(sql); List<SqlRow> list = sqlQuery.findList(); String sql=“从价格为100的产品中选择名称”; SqlQuery SqlQuery

我有一个类产品与字段id,名称,价格等

我只想从表中取一个名字

我当前正在使用此查询

 String sql =   "select name from product where price = 100";
 SqlQuery sqlQuery = Ebean.createSqlQuery(sql);
  List<SqlRow> list = sqlQuery.findList();
String sql=“从价格为100的产品中选择名称”;
SqlQuery SqlQuery=Ebean.createSqlQuery(sql);
List List=sqlQuery.findList();
使用列表查找但仅获取名称的AlerterName方法是什么

List<product> list = product.find.where("price = 100").select("name").findList();
List List=product.find.where(“price=100”)。选择(“name”).findList();
我不认为下面的查询是有效的,因为它获取所有数据并返回我们过滤的数据

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

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


return list;
List List=new ArrayList();
对于(产品p:product.find.select(“name”).findList())
{
列表。添加(p.名称);
}
退货清单;
默认情况下
。选择(“名称”)
会自动包含Id列。因此,在SQL中,您将看到
选择t0.id,t0.name from…

如果将
setDistinct(true)
添加到查询中,则会告诉Ebean不要包含Id列,您将在SQL
中看到选择distinct t0.name from…

试一试

product.find
.where().eq(“价格”,100)
.setDistinct(true)。选择(“名称”)
.findList()

默认情况下
。选择(“名称”)
会自动包含Id列。因此,在SQL中,您将看到
选择t0.id,t0.name from…

如果将
setDistinct(true)
添加到查询中,则会告诉Ebean不要包含Id列,您将在SQL
中看到选择distinct t0.name from…

试一试

product.find
.where().eq(“价格”,100)
.setDistinct(true)。选择(“名称”)

.findList()

Ebean拥有
FindSingleAttribute列表()
FindSingleAttribute()
,因此备选答案是:

List<String> productNames =
  product.find
    .where().eq("price", 100)
    .select("name")
    .findSingleAttributeList();
列出产品名称=
product.find
.where().eq(“价格”,100)
.选择(“名称”)
.findSingleAttributeList();

Ebean拥有
findSingleAttributeList()
findSingleAttributeList()
,因此备选答案是:

List<String> productNames =
  product.find
    .where().eq("price", 100)
    .select("name")
    .findSingleAttributeList();
列出产品名称=
product.find
.where().eq(“价格”,100)
.选择(“名称”)
.findSingleAttributeList();

感谢您的回复。。但它会返回所有列您使用的是哪个版本的Ebian?它必须是3.3.4,因为我使用的是play framework 2.3.x,这将是问题所在(您可能知道Ebian现在是7.x,而您使用的是一个非常旧的版本)。假设您无法升级,您可以改为使用SqlQuery。感谢您的回复。。但它会返回所有列您使用的是哪个版本的Ebian?它必须是3.3.4,因为我使用的是play framework 2.3.x,这将是问题所在(您可能知道Ebian现在是7.x,而您使用的是一个非常旧的版本)。假设您不能升级,您可以改为使用SqlQuery。