GreenDao3.X排序方法踩坑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GreenDao3.X排序方法踩坑相关的知识,希望对你有一定的参考价值。
参考技术A 关于greenDao 的排序 , 常用的有三个方法1.orderAsc(Property...properties)
很简单这是个正序排序,传入参数即可。SQL语句中排序orderby的时候是不指定正反序,默认是正序。 但是无论是greenDao还是SQL语句进行排序,这里都有一个坑,敲黑板!!!就是这个需要的这个参数properties的类型,千万不要是String!!! 楼主在这坑爬了半天,简单举例如果你这个参数是string类型的,那么你就会发现它是一位一位取出来进行排序的,就是这样的 1,10,11,12...2,20,21,22....而不是你想要的123456...
2.orderDesc(Property... properties)
这个是倒叙没什么好说的...
3.orderRaw(String rawOrder)
这个就厉害了,举个例子,你要做个考试系统的随机练习功能,但是greenDao并没有像SQL语句那样提供random方法,这时候如果又用回SQL语句建立规则然后游标cu'rsor查询,那我们为什么费劲巴拉的用greenDao呢,其实 greenDao是可以结合SQL语句 进行食用的,安全无公害还嘎嘣脆【笑。。。】这里用这个方法就可以轻松实现,点出来写入语句即可。( 注:这里输出list的时候不要用.listLazyUncached()!!! )
正确使用@Async,避免踩坑
参考技术A功能描述
@Async是Spring提供的使方法异步的注解
使用方法
代码示例
已实现的TaskExecutor线程池
@Async依赖线程池,当我们未指定线程池@Async会如何选择呢?
1. 当系统未配置任何线程池时
SpringBoot会默认添加一个coreSize=8的 ThreadPoolTaskExecutor 无界线程池,名称applicationTaskExecutor。
2. 当只配置了一个TaskExecutor线程池时
使用此线程池
3. 当只配置了一个线程池,但不是TaskExecutor线程池时
使用 SimpleAsyncTaskExecutor 线和池
4. 当有多个TaskExecutor线程池时
默认使用 SimpleAsyncTaskExecutor 线程池,如果指定就使用指定的线程池(即使不是TaskExecutor类型的线程池也可以)
注意: SimpleAsyncTaskExecutor 不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。强烈建议开发时指定线程池的名称,避免创建多个TaskExecutor实例后,使用 SimpleAsyncTaskExecutor 线和池的情况发生
以上是关于GreenDao3.X排序方法踩坑的主要内容,如果未能解决你的问题,请参考以下文章