이 질문 : - 'IT 부서 내가 상용 소프트웨어 패키지를 사용해야 말한다'고 몇 가지 이유는 일반적으로 있습니다 잘 our site
에 설명되어 있습니다 (재 시퀀스)보다 Grails를보다 최대 절전 모드와 관련이 있습니다. ... 이들 중 뷰, 테이블, 짝수 열과 같은 데이터베이스 개체의 명명 표준이 있습니다.
또 다른 이유는 개체가 특정 범위에 속하는 것을 보장하기 위해 '모든 테이블에는 자체 시퀀스가 있어야합니다'와 같은 표준이 있습니다. 이렇게하려면 이름 변경을위한 정적 매핑 블록을 추가하면됩니다. COMMENT는 COMMENT_TBL이되고 사용중인 데이터베이스에 대해 Hibernate Dialect를 서브 클래스 화합니다.
N.B : 매핑 폐쇄에 오라클 고유의 ID를 생성 이제 Grails의 1.2.x를 프레임 워크에 의해 무시되고, 그래서이 질문은 최신 버전 관련이 없습니다. 이 질문에 대한 배경은 JIRA 을 참조하십시오 - 원본 안내문 here.
public class TableNameSequenceGenerator extends SequenceGenerator {
/**
* If the parameters do not contain a {@link SequenceGenerator#SEQUENCE} name, we
* assign one based on the table name.
*/
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
if(params.getProperty(SEQUENCE) == null || params.getProperty(SEQUENCE).length() == 0) {
String tableName = params.getProperty(PersistentIdentifierGenerator.TABLE);
if(tableName != null) {
String seqName = “seq_” + tableName;
params.setProperty(SEQUENCE, seqName);
}
}
super.configure(type, params, dialect);
}
}
public class MyDialect extends Oracle10gDialect {
public Class getNativeIdentifierGeneratorClass() {
return TableNameSequenceGenerator.class;
}
}
: 당신은 당신 만 서브 클래스 Oracle10gDialect를 사용할 수있는 하나의 시퀀스 당 테이블 접근 방식을 원하는 경우 최대 절전 모드
community, 특히 롭 Hasselbaum 권장 명심하십시오