Ormlite 更改查询顺序

Posted

技术标签:

【中文标题】Ormlite 更改查询顺序【英文标题】:Ormlite change order of query 【发布时间】:2019-04-20 22:19:36 【问题描述】:

我在 orm lite 中创建了一个这样的查询:

TAbleA.queryBuilder()
                        .where()
                        .eq("col1", Wait)
                        .or()
                        .eq("col2", Fail)
                        .and()
                        .isNull("col3")
                        .or()
                        .le("col4", fromThisTime)
                        .prepare(); 

它准备这个查询:

MappedStatement: SELECT COUNT(*) FROM `TableA` WHERE (((`col1` = 'Wait' OR `col2` = 'Fail' ) AND `col3` IS NULL ) OR `col4` <= '2018-11-18 13:08:03.637000' ) 

但我想将其更改为:

MappedStatement: SELECT COUNT(*) FROM `TableA` WHERE (`col1` = 'Wait' OR `col2` = 'Fail' ) AND (`col3` IS NULL OR `col4` <= '2018-11-18 13:08:03.637000' ) 

我该怎么做?!

我想更改ANDOR 的顺序。

有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

根据this,最简单的方法是:

TAbleA.queryBuilder()
                    .where()
                    .eq("col1", Wait)
                    .eq("col2", Fail)
                    .or(2)
                    .isNull("col3")
                    .le("col4", fromThisTime)
                    .or(2)
                    .and(2)
                    .prepare(); 

否则,您可以使用 post-order

编写复杂的查询

【讨论】:

以上是关于Ormlite 更改查询顺序的主要内容,如果未能解决你的问题,请参考以下文章

ORMLite 更改 onUpgrade 中的 allowGeneratedIdInsert

ORMLite 带引号查询,Android

使用for循环生成条件时如何在ormlite中编写查询

如何修改 ServiceStack.OrmLite 生成的 SQL?

ORMLite 对字段子字符串的原始查询

在使用原始查询时选择比较 ormlite 中的两列值的行