0

以下に示すように、多対多の関係と関数を備えた単純なモデルがあり、モデル ページをレンダリングします。次のようなカテゴリ (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);
    }
}
4

1 に答える 1

1

それはほんの数トピック前の同様の質問であり、そのサンプルを使用できます(また、関係フィルタリングの他の可能性も確認してください)

クエリは次のようになります (名前に「some」単語が含まれているものを見つけるため) Items:Categories

find.where()
        .ilike("categories.name", "%some%")
        .orderBy(sortBy + " " + order)
        .findPagingList(pageSize)
        .getPage(page);
于 2012-11-25T07:02:32.003 に答える