【问题标题】:Chaining queries in Play! Framework在 Play 中链接查询!框架
【发布时间】:2011-11-30 15:28:31
【问题描述】:

有没有办法在“播放!”中链接查询?框架而不是手动编写查询?

类似:

模型 m = Model.where("name","Bill").where("gender","m").first();

我想知道,因为我最近从 Codeigniter + dmz 切换到 grails 然后现在切换到 "Play!" 并且与上面提到的框架相比,查询链接有点失望

PS:我显然不是在谈论 fetch()from() 方法。

【问题讨论】:

    标签: activerecord playframework method-chaining


    【解决方案1】:

    有一个 JpqlSelect 对象可以做到这一点

    public static Model findBill() {
        JpqlSelect select = new JpqlSelect().from("Model").where("name=?").param("Bill").andWhere("gender=?").param("m");
        return find(select.toString(), select.getParams().toArray()).first();
    }
    

    这个助手还远未完成,但它可能适合您的需求

    【讨论】:

      【解决方案2】:

      您可以使用 java.persistence Criteria API 来做到这一点:

      CriteriaQuery q = JPA.em().getCriteriaBuilder().createQuery(Model.class)
      q.where(<Expression>).where(<Expression>);
      TypedQuery<Model> tq = JPA.em().createQuery(q);
      List<Model> result = tq.getResultList();
      

      查看herehere 开始

      【讨论】:

        【解决方案3】:

        另一种选择是使用 http://www.querydsl.com/ 与它的 jpa 集成。

        【讨论】:

        • 不确定它是否能很好地插入到 play 1.x 构建系统中
        • 好像是possible我选择了另一个答案(因为形式),但你的可能是最强大的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        • 1970-01-01
        • 2018-06-04
        • 1970-01-01
        相关资源
        最近更新 更多