2010-12-01 2 views
2

Eclipselink를 지속성 공급자로 사용하고 있습니다. 데이터베이스에 열이 나타나는 순서를 지정하는 방법이 있습니까? 데이터베이스의 열 순서가 내 항목의 속성 순서와 일치하지 않습니다. 지금까지 내가 알파벳 순서로 최대 절전 모드 열을 이해했지만 Eclipselink에 대한 사양을 찾을 수 없습니다.JPA 및 데이터베이스의 열 순서

답변

2

EclipseLink는 매핑의 가중치를 기반으로 매핑과 따라서 열을 정렬합니다. 일반적으로 무게는 Baisc 매핑이 첫 번째이고 관계 매핑이 두 번째가되도록 보장하기 위해 설정되지 않습니다.

DescriptorCustomizer를 사용하여 원하는 경우 매핑의 가중치를 설정할 수 있습니다. 또한 설명자를 가중치로 정렬하지 않도록 설정할 수 있으므로 지정된 순서가 사용됩니다 (setShouldOrderMappings (false)).

public void MyCustomizer implements DescriptorCustomizer { 
    public void customize(ClassDescriptor descriptor) { 
    descriptor.getMappingForAttributeName("name").setWeight(2); 
    } 
} 

2.2 개발에 매핑의 가중치에 대한 최근의 변화가 있었다, 매핑은 이제 같은 무게의 수준 내 이름으로 분류되어 있습니다.

+0

고맙습니다. :-) –

+0

정답이지만 확실하지 않다'setShouldOrderMappings (false)'는 당신이 기대하는 것을 수행한다. AFAIK, 소스 코드 파일에 지정된대로 주문을받을 수있는 방법이 없습니다. 실제로는 일반적으로 원하는 것입니다. 따라서 코드 예제에서와 같이 명시 적으로 가중치를 지정해야합니다. – peterh

+0

사용자 지정을 사용하여이 작업을 수행하는 방법에 대한 전체 예는 [이 블로그] (http://marsparanoma.blogspot.dk/2014/01/how-to-set-column-order-in-jpa-under.html)를 참조하십시오. 주석. – peterh