java - 在 Play 中通过多对多关系过滤模型对象! 2.0

标签 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);
    }
}

最佳答案

那是similar question just a few topics ago您可以使用其中的示例(还可以检查 relation filtering 的其他可能性)

您的查询应如下所示(查找包含名称中包含“some”单词的CategoriesItems):

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

关于java - 在 Play 中通过多对多关系过滤模型对象! 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545416/

相关文章:

scala - 在 Products.scala 中找不到 flash

java - 在某些情况下,Ebean 中急于获取 blob

java - Jar 文件找不到 Credentials.json

java - Java 的序列化文件与 C 语言(JNI)中的 `sizeof` 运算符不相等

mysql - 使用 mysql 驱动程序处理 GAE 应用程序中的外部 mysql 数据库

scala - PlayWS 发布多部分表单数据

playframework-2.0 - 使用 Ebean SqlQuery 的最有效方法

java - playframework 2.0-java 中的日期在表单中给出无效值

java.lang.IllegalStateException : Page can only be offset by a positive amount

java - 使用 Spring 代理时如何查看和调试 Web 服务响应?