jOOQ 中有 pluck() 的等价物吗?
Is there an equivalent of pluck() in jOOQ?
我今天才发现 jOOQ 并决定试一试。只是想知道,是否有等同于 Eloquent 的 pluck().这消除了为了获取单个值而编写大量冗长的代码。例如在 Eloquent (Laravel) 中,我将通过以下方式简单地获取地点名称:
$name = Place::where('iso_code', '=', $code)->pluck('name');
或
$name = DB::table('places')->where('iso_code', '=', $code)->pluck('name');
jOOQ 中是否有等效的东西?
谢谢。
根据我的理解 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)
我今天才发现 jOOQ 并决定试一试。只是想知道,是否有等同于 Eloquent 的 pluck().这消除了为了获取单个值而编写大量冗长的代码。例如在 Eloquent (Laravel) 中,我将通过以下方式简单地获取地点名称:
$name = Place::where('iso_code', '=', $code)->pluck('name');
或
$name = DB::table('places')->where('iso_code', '=', $code)->pluck('name');
jOOQ 中是否有等效的东西?
谢谢。
根据我的理解 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)