typeorm“ OR”运算符

时间:2018-11-21 07:36:21

标签: sql typescript operators typeorm

我在typeorm文档或源代码中都找不到OR运算符的任何概念。它完全支持吗?

我正在尝试使用存储库执行基本搜索。

db.getRepository(MyModel).find({
  name : "john",
  lastName: "doe"
})

我知道这会产生一个AND运算,但是 我需要执行OR操作,因此sql如下所示:

name='john' OR lastName='doe'

我被迫将查询生成器用于此类基本操作吗?

2 个答案:

答案 0 :(得分:1)

Map<P,Optional<Q>> map = ...;
Map<P,Q> map2 = map.entrySet()
                  .stream().filter(e -> e.getValue().isPresent())
                  .collect(Collectors.toMap(e -> e.getKey(), e->e.getValue().get()));

将数组传递到db.getRepository(MyModel).find({ where:[ {name:"john"}, {lastName: "doe"} ] })

答案 1 :(得分:0)

我遇到了同样的问题,但是我使用QueryBuilder解决了这个问题。

这是一个例子。

return await getRepository(MyModel)
  .createQueryBuilder()
  .where("name = :name OR lastName = :lastName", {
    name: "john",
    lastName: "doe"
  })
  .getMany();