IT이야기

jpa에서 생성된 테이블의 잘못된 순서

cyworld 2021. 9. 25. 11:11
반응형

jpa에서 생성된 테이블의 잘못된 순서


이것은 (해야 할) 다소 간단한 일이지만 나는 고군분투하고 있습니다.

다음과 같이 테이블을 생성하고 싶습니다.

ID 
조직번호 
이름

그러나 데이터베이스를 보면 순서가 잘못된 것을 알 수 있습니다. 최대 절전 모드/jpa가 올바른 순서로 테이블을 생성하도록 강제할 수 있는 방법을 아는 사람이 있습니까?

desc 조직;
+--------------------+--------------+------+-----+ ------+----------------+
| 필드 | 유형 | 널 | 키 | 기본값 | 추가 |
+--------------------+--------------+------+-----+ ------+----------------+
| 아이디 | 빅틴트(20) | 아니오 | PRI | 널 | 자동 증가 |
| 이름 | varchar(255) | 아니오 | | 널 | |
| 조직번호 | varchar(255) | 아니오 | 유니 | 널 | |
+--------------------+--------------+------+-----+ ------+----------------+

내 엔티티 빈은 다음과 같습니다.

@실재
@NamedQuery(이름 = "allOrganizations", 쿼리 = "SELECT org FROM Organization org order by name")
공개 클래스 조직 {

    개인 긴 ID;
    개인 문자열 조직 번호;
    개인 문자열 이름;

    공공기관() {
    }

    공개 조직(문자열 이름) {
        this.name = 이름;
    }

    @ID
    @생성된 값
    공개 긴 getId() {
        반환 ID;
    }

    @SuppressWarnings("사용하지 않음")
    개인 무효 setId(긴 ID) {
        this.id = 아이디;
    }

    @NotEmpty
    @Column(고유=true, nullable=false)
    공개 문자열 getOrganizationNumber() {
        반환 조직 번호;
    }
       공개 무효 setOrganizationNumber(문자열 조직 번호) {
        this.organizationNumber = 조직번호;
    }


    @NotEmpty
    @Column(nullable=거짓)
    공개 문자열 getName() {
        반환 이름;
    }

    공개 무효 setName(문자열 이름) {
        this.name = 이름;
    }

    @우세하다
    공개 문자열 toString() {
        this.name + " " + this.organizationNumber를 반환합니다.
    }
}

Hibernate는 알파벳 순서로 열을 생성 합니다. 이 게시물 에 따르면 이유는 다음과 같습니다.

클러스터 전체에서 결정적 순서를 보장하기 위해 정렬됩니다.

우리는 매번 같은 순서로 메서드를 반환하기 위해 vm에 의존할 수 없으므로 무언가를 해야 했습니다.

분명히 발생 순서대로 있었지만 3.2.0 GA와 3.2.1 GA 사이에서 변경되었습니다.

I also found Schema auto generation creates columns in alphabetical order for compound primary keys and this seems to be like your problem. This ticket is about the order changing in primary keys and that negatively impacts index performance.

There is no fix for this other than a workaround of naming the columns in such a way that they come out in the correct order (no, I'm not kidding).


DataNucleus allows the extension specifying the position for schema generation, FWIW.

ReferenceURL : https://stackoverflow.com/questions/1298322/wrong-ordering-in-generated-table-in-jpa

반응형