由于默认的ContainerFactory使用的是HashMap存储检索结果,导致检索回来的数据列的顺序与数据库存储的不一致。我发现包里面有个OrderedFieldContainerFactory,这个使用了LinkedHashMap,于是使用这个Factory可以解决问题。
依赖包版本参考:
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>activerecord</artifactId>
<version>4.8</version>
</dependency>
在ActiveRecordPlugin创建的地方,指定设置ContainerFactory:
arp.setContainerFactory(new OrderedFieldContainerFactory());
这个方法是基于这篇文章给出的思路找到的最佳答案:
https://my.oschina.net/u/228832/blog/1928268