在play 2.0框架中执行查询时出错

时间:2013-01-08 05:06:50

标签: java sql playframework playframework-2.0 ebean

我只想获取具有特定ID的数据。我的方法包含查询:

public static List getidProducts(Integer id) {
    List<Products> productsid = Products.find("product_id IN:id").bind("id", id).fetch();
    return productsid;
}

我收到错误:未找到符号,表示方法 find()中存在错误。 我哪里错了?请建议我。

这是我的products.java

package models;

import java.util.*;
import javax.persistence.*;
import play.db.ebean.*;
import play.data.format.*;
import play.data.validation.*;
import com.avaje.ebean.*;
import java.sql.*;

public class Products extends Model {

    @Id
    public Integer product_id;

    @Constraints.Required
    public String productname;

    @Constraints.Required
    public Integer quantity;
    @Constraints.Required
    public Integer price;

    public static Finder<Integer,Products> find = new Finder<Integer,Products>(Integer.class, Products.class); 

    public static List getidProducts(Integer id) {
        return Products.find().where().in("id", id).findList();
    }
}

1 个答案:

答案 0 :(得分:1)

这还是Ebean吗?奇怪的是,试试这个:

public static List<Products> getidProducts(Integer id) {
    return Products.find.where().in("product_id", id).findList();
}

Nota bene不是您的product_id独特领域?在这种情况下,您应该返回Products对象而不是List。

public static Products getidProducts(Integer id) {
    return Products.find.where().eq("product_id", id).findUnique();
}

或更简单:

public static Products getidProducts(Integer id) {
    return Products.find.byId(id);
}