문제

Gorm을 사용하여 Groovy 클래스에서 데이터베이스의 DDL을 생성합니다. 그것은 훌륭합니다. 그러나 생성 된 SQL의 필드 순서는 클래스의 필드 순서와 동일하지 않습니다. 예를 들어, 클래스를 만드는 경우

class Person
{
  String firstName
  String lastName
  String address
  String email
}

다음 SQL이 생성됩니다 (MySQL 용)

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL auto_increment,
  `version` bigint(20) NOT NULL,
  `address` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

필드는 정리되었습니다 알파벳 주문 (자동 생성 ID 및 버전 필드 후). 이 경우에는 괜찮지 만 필드 순서대로 중요한 문맥 정보가있는 훨씬 더 넓은 테이블이 있습니다.

내 질문은 다음과 같습니다. Gorm은 GOMP에 대해 Groovy 클래스의 선언 순서대로 SQL의 필드를 주문하라고 어떻게 말합니까?

도움이 되었습니까?

해결책

주문을 지정하는 방법은 없지만 원하는대로 자신만의 테이블을 만들고 도메인 클래스에서 이름 매핑을 제공 할 수 있습니다. 또한 Gorm이 테이블을 만들고 올바른 순서로 테이블을 재현하고 그 후 Gorm에서 자동 DDL 물건을 끄도록 할 수 있습니다. Gorm이 선택한 필드 및 테이블 이름을 사용하는 경우 매핑을 추가 할 필요가 없습니다.

다른 팁

나는 이것에 대해 절대적으로 확신하지 못하지만 제약 조건 폐쇄는보기에서 필드의 순서를 정의 할 수 있습니다. 아마도 테이블의 필드에 반영됩니다.

class Person
{
  String firstName
  String lastName
  String address
  String email
}

static constraints = {
  firstName()
  lastName()
  address()
  email()
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top