2014-01-07 2 views
1

우리 팀은 MyBatis Generator 버전 1.3.1을 사용하기 시작했으며 은 최근에 버전 1.3.2로 마이그레이션했으며 생성 된 POJO의 속성 순서대로 변경되었습니다.MyBatis의 속성 순서는 다음과 같습니다.

이전에 생성 된 클래스의 속성 순서는 알파벳 순서 였지만 변경 후에는 XxxKey 클래스 (즉, 테이블의 기본 키와 일치하는 클래스)에서 속성은 더 이상 알파벳 순서가 아닙니다.

예 :

버전 1.3.1 :

public class PoolChargingKey { 
    private String billingCycle; 
    private Integer commercialGroupId; 
    private Short destinationId; 
    private Integer tariffPlanId; 
    private String trafficCase; 
    private Integer zoneId; 
[...] 

버전 1.3.2 :

public class PoolChargingKey { 
    private Integer commercialGroupId; 
    private Integer tariffPlanId; 
    private Integer zoneId; 
    private Short destinationId; 
    private String basicService; 
    private String trafficCase; 
[...] 

우리는 g 액세스 일부 조롱 유틸리티에 대한 반성과 함께 POJO가 실행되었고 속성 순서의 변경으로 인해 POJO가 손상되었습니다. 영향을받은 변경 사항은 해결할 수 있지만 클래스 생성 방법을 나타내는 것은 좋습니다.

그렇게 할 수 있습니까? 나는 대답이 '아니오'라고 생각하지만, 다만 그렇다. 그런데 버전 1.3.1의 속성 순서는 영문자입니다. 버전 1.3.2에서 생성 된 속성은 어떤 순서로 나타 납니까?

감사합니다. Tomas.

답변

1

특성 순서의 구성과 관련된 설명서에서 본 항목이 없습니다.

그러나 한 가지 방법으로 원하는대로 소스 코드를 변경할 수 있습니다. org.mybatis.generator.codegen.mybatis3.model.IntrospectedTable.java에서 목록에 추가 된 열의 순서는 다음과 같습니다.

List<IntrospectedColumn> answer = new ArrayList<IntrospectedColumn>(); 
    answer.addAll(primaryKeyColumns); 
    answer.addAll(baseColumns); 
    answer.addAll(blobColumns); 

getAllColumns() 메소드에서. 이 추가 된 열은 List<IntrospectedColumn>입니다. IntrospectedColumn 클래스의 String actualColumnName에 따라 목록을 정렬하면 원하는 주문을받을 수 있습니다.

0

는 또한 mybatis.user 구글 그룹에서이 질문을하고, 제프 버틀러는 친절이 대답 : 우리는 여기에 변경 않았다

합니다. 이 다음과 같은 문제와 관련된 :

https://code.google.com/p/mybatis/issues/detail?id=438

이 이제 필드가 "키 순서"에 보관됩니다. 즉, 에 있음을 의미하고 "KEY_SEQ"필드에 지정된 순서는 JDBC DatabaseMetaData.getPrimaryKeys() 함수에서 반환됩니다.

제프 버틀러