我正在尝试使用存储库查找来编写查询,但似乎没有找到适合我的查询的解决方案。
我知道这可以通过查询生成器或 Raw() 条件实现,但如果可能的话,我想使用存储库查找。
我想要达到的条件是字段1 = '字符串'AND(字段2为空OR字段2 >= 日期()).
目前唯一适合我的解决方案是:
where: [
{ param1: 'string', field2: IsNull() },
{ param1: 'string', field2: MoreThenOrEqual(new Date() ) }
]
但这将转化为(field1 = 'string' AND field2 IS NULL) OR (field1 = 'string' OR field2 >= Date())
我尝试过类似的东西:
where: [
{ param1: 'string', field2: ( IsNull() || MoreThenOrEqual(new Date() ) ) }
]
但我可以让它发挥作用。有谁知道我原来的 where 条件是否可以在不更改查询的情况下完成?
仅供参考:我正在使用 Typescript 和 TypeORM。
Edit 1.根据评论的请求,我使用 queryBuilder 发布当前的实现(仅是 where 条件):
.where('param1 = :var1', {va1: 'string'})
.andWhere(new Brackets(query => {
query.where('field2 IS NULL')
.orWhere('field3 >= NOW()::DATE')
})