【问题标题】:How to return a list of results in jOOQ Mocked Data如何在 jOOQ 模拟数据中返回结果列表
【发布时间】:2019-10-22 07:14:43
【问题描述】:

我正在使用 jOOQ 的 MockDataProvider 来模拟对数据库的调用。我已经弄清楚如何使用此处的信息返回一条记录:https://blog.jooq.org/2013/02/20/easy-mocking-of-your-database/

但是,我想为我的查询返回一个结果列表,而不仅仅是一条记录。我该怎么做?

我可以使用以下(来自上面的链接)返回单个结果:

return new MockResult[] {
  new MockResult(1, result)
};

但是,我不知道如何添加多个结果,MockResult 的所有构造函数只接受一个结果。有什么提示吗?我错过了什么明显的东西吗?

例如,如果我查询所有属于公路自行车的自行车: SELECT * FROM bicycles WHERE type = "road"; 如何返回包含 10 辆自行车而不是仅一辆的列表?

【问题讨论】:

  • 多个结果是什么意思?多个结果集,例如当调用产生多个结果集的 SQL Server 批处理或存储过程时?您能否展示一个示例,说明您要模拟什么,以及您的客户端代码是什么样的(使用模拟)?
  • 我在上面加了一个例子

标签: java jdbc jooq


【解决方案1】:

我可以使用以下(来自上面的链接)返回单个结果

但已经是这样了。您返回带有多条记录的单个结果。您传递给 MockResult 构造函数的结果可能如下所示:

var result = ctx.newResult(BICYCLES.COL1, BICYCLES.COL2);
result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(1, 2));
result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(3, 4));
...

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 2021-06-08
    • 1970-01-01
    • 2020-11-09
    • 2015-12-28
    相关资源
    最近更新 更多