【问题标题】:Is there an equivalent of pluck() in jOOQ?jOOQ 中是否有 pluck() 的等价物?
【发布时间】:2016-06-08 03:45:38
【问题描述】:

我今天刚刚发现了 jOOQ,并决定试一试。只是想知道,是否有相当于 Eloquent 的 pluck()。这消除了为了获得单个值而编写大量冗长的代码。例如在 Eloquent (Laravel) 中,我将通过以下方式获得一个地方的名称:

    $name = Place::where('iso_code', '=', $code)->pluck('name');

    $name = DB::table('places')->where('iso_code', '=', $code)->pluck('name');

jOOQ 中有没有等价的东西?

谢谢。

【问题讨论】:

    标签: java sql jdbc jooq


    【解决方案1】:

    根据我对pluck()(有趣的命名选择)的理解,我怀疑您想要做的是以下SQL:

    SELECT name FROM places WHERE iso_code = ?
    

    在 jOOQ 中,以下语句将执行相同的操作(使用代码生成器):

    String name =
    DSL.using(configuration)
       .select(PLACES.NAME)
       .from(PLACES)
       .where(PLACES.ISO_CODE.eq(code))
       .fetchOne(PLACES.NAME);
    

    不使用代码生成器:

    Field<String> field = DSL.field("name", String.class);
    
    String name =
    DSL.using(configuration)
       .select(field)
       .from("places")
       .where("iso_code = ?", code)
       .fetchOne(field);
    

    所以,Eloquent 的 pluck() 相当于 jOOQ 的 ResultQuery.fetchOne(Field)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2011-07-29
      • 2013-06-21
      • 2014-01-09
      • 2012-02-18
      • 2014-05-02
      相关资源
      最近更新 更多