Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mocking MyBatis生成的POJO中的属性顺序_Mocking_Mybatis_Pojo_Mybatis Generator - Fatal编程技术网

Mocking MyBatis生成的POJO中的属性顺序

Mocking MyBatis生成的POJO中的属性顺序,mocking,mybatis,pojo,mybatis-generator,Mocking,Mybatis,Pojo,Mybatis Generator,在我们的团队中,我们开始使用MyBatis Generator 1.3.1版 我们最近刚迁移到版本1.3.2,发现生成的POJO的属性顺序发生了变化 以前,生成的类中属性的顺序是按字母顺序排列的,但经过更改后,我们发现在XxxKey类中,即与表主键匹配的类中,属性的顺序不再按字母顺序排列 示例: 版本1.3.1: 版本1.3.2: 我们正在访问生成的POJO,其中包含一些模拟UTIL的反射,属性顺序的更改破坏了它。 我们可以修复受影响的更改,但最好能指出类是如何生成的 有可能吗?我想答案是否定

在我们的团队中,我们开始使用MyBatis Generator 1.3.1版 我们最近刚迁移到版本1.3.2,发现生成的POJO的属性顺序发生了变化

以前,生成的类中属性的顺序是按字母顺序排列的,但经过更改后,我们发现在XxxKey类中,即与表主键匹配的类中,属性的顺序不再按字母顺序排列

示例:

版本1.3.1:


版本1.3.2:

我们正在访问生成的POJO,其中包含一些模拟UTIL的反射,属性顺序的更改破坏了它。 我们可以修复受影响的更改,但最好能指出类是如何生成的

有可能吗?我想答案是否定的,但以防万一。 顺便说一下,1.3.1版中的属性顺序是字母顺序。 在版本1.3.2中,属性的生成顺序是什么

问候,,
Tomas。

我在文档中没有看到任何关于属性顺序配置的内容

但是,一种方法是根据需要更改源代码。 从
org.mybatis.generator.codegen.mybatis3.model.IntrospectedTable.java
中,我看到添加到列表中的列的顺序是:

    List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>();
    answer.addAll(primaryKeyColumns);
    answer.addAll(baseColumns);
    answer.addAll(blobColumns);
List-answer=new-ArrayList();
答案:addAll(primaryKeyColumns);
回答:addAll(基本列);
答案:addAll(blobColumns);

在getAllColumns()方法中。这些添加的列是
列表
。我想如果你在
自省列
类中根据
字符串actualColumnName
对这些列表进行排序,也许你可以得到你想要的顺序。

我在mybatis.user google groups中也问了这个问题,Jeff Butler善意地回答了这个问题:

我们确实在这里做了改变。这与以下问题有关:

现在字段保持“键顺序”。这就意味着他们处于危险之中 从JDBC返回的“KEY_SEQ”字段指定的顺序 DatabaseMetaData.getPrimaryKeys()函数

杰夫·巴特勒

public class PoolChargingKey {
    private Integer commercialGroupId;
    private Integer tariffPlanId;
    private Integer zoneId;
    private Short destinationId;
    private String basicService;
    private String trafficCase;
[...]
    List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>();
    answer.addAll(primaryKeyColumns);
    answer.addAll(baseColumns);
    answer.addAll(blobColumns);