通过Play中的ManytoMany关系过滤模型对象! 2.0

时间:2012-11-24 20:45:56

标签: java playframework playframework-2.0 ebean

我有一个简单的模型,有很多关系和一个函数,渲染模型页面,如​​下所示。我想知道是否有一种方法可以按类别(ManytoMany字段)过滤项目页面,例如.ilike("categories", "%" + filter + "%")

public class Item extends Model {
    @Id
    public Long id;

    @ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
    public List<Category> categories = new ArrayList<Category>();

    public String title;

    @Formats.DateTime(pattern="dd/MM/yyyy")
    public Date postDate=new Date();

    public String content;

    public String picture;

    public String price;

    public String url;

    public static Finder<Long,Item> find = new Finder<Long,Item>(
            Long.class, Item.class
          ); 


    public static Page<Item> page(int page, int pageSize, String sortBy, String order, String filter) {
            return
                find.where()
                    .ilike("content", "%" + filter + "%")
                    .orderBy(sortBy + " " + order)
                    .findPagingList(pageSize)
                    .getPage(page);
    }
}

1 个答案:

答案 0 :(得分:1)

那是similar question just a few topics ago你可以使用它的样本(并检查relation filtering的其他可能性)

您的查询应如下所示(查找包含Items的{​​{1}},其中包含名称中的“某些”字词:

Categories