2012-11-24 109 views
0

我有一個簡單的模型,帶有許多關係和函數,可以渲染模型頁面,如​​下所示。我想知道是否有篩選按類別像.ilike("categories", "%" + filter + "%")在Play中通過ManytoMany關係過濾模型對象! 2.0

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

這是similar question just a few topics ago項目頁面(多對多場)的方式,你可以從它使用的樣本(並檢查其他可能性relation filtering

您的查詢應該是這樣的(找到Items包含Categories包含「一些」一詞在他們的名字):

find.where() 
     .ilike("categories.name", "%some%") 
     .orderBy(sortBy + " " + order) 
     .findPagingList(pageSize) 
     .getPage(page); 
相關問題