下面列出了怎么用org.hibernate.boot.model.relational.Sequence的API类实例代码及写法,或者点击链接到github查看源代码。
protected void validateSequence(Sequence sequence, SequenceInformation sequenceInformation) {
if ( sequenceInformation == null ) {
throw new SchemaManagementException(
String.format( "Schema-validation: missing sequence [%s]", sequence.getName() )
);
}
if ( sequenceInformation.getIncrementSize() > 0
&& sequence.getIncrementSize() != sequenceInformation.getIncrementSize() ) {
throw new SchemaManagementException(
String.format(
"Schema-validation: sequence [%s] defined inconsistent increment-size; found [%s] but expecting [%s]",
sequence.getName(),
sequenceInformation.getIncrementSize(),
sequence.getIncrementSize()
)
);
}
}
protected void buildSequence(Database database) {
final int sourceIncrementSize = getSourceIncrementSize();
final Namespace namespace = database.locateNamespace(
logicalQualifiedSequenceName.getCatalogName(),
logicalQualifiedSequenceName.getSchemaName()
);
Sequence sequence = namespace.locateSequence( logicalQualifiedSequenceName.getObjectName() );
if ( sequence != null ) {
sequence.validate( initialValue, sourceIncrementSize );
}
else {
sequence = namespace.createSequence( logicalQualifiedSequenceName.getObjectName(), initialValue, sourceIncrementSize );
}
this.sequenceName = database.getJdbcEnvironment().getQualifiedObjectNameFormatter().format(
sequence.getName(),
database.getJdbcEnvironment().getDialect()
);
}
@Override
public String[] getSqlCreateStrings(Sequence sequence, Metadata metadata) {
final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment();
return dialect.getCreateSequenceStrings(
jdbcEnvironment.getQualifiedObjectNameFormatter().format(
sequence.getName(),
jdbcEnvironment.getDialect()
),
sequence.getInitialValue(),
sequence.getIncrementSize()
);
}
@Override
public String[] getSqlDropStrings(Sequence sequence, Metadata metadata) {
final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment();
return dialect.getDropSequenceStrings(
jdbcEnvironment.getQualifiedObjectNameFormatter().format(
sequence.getName(),
jdbcEnvironment.getDialect()
)
);
}
@Override
public void registerExportables(Database database) {
final Namespace namespace = database.locateNamespace(
logicalQualifiedSequenceName.getCatalogName(),
logicalQualifiedSequenceName.getSchemaName()
);
Sequence sequence = namespace.locateSequence( logicalQualifiedSequenceName.getObjectName() );
if ( sequence != null ) {
sequence.validate( 1, 1 );
}
else {
sequence = namespace.createSequence(
logicalQualifiedSequenceName.getObjectName(),
1,
1
);
}
final JdbcEnvironment jdbcEnvironment = database.getJdbcEnvironment();
final Dialect dialect = jdbcEnvironment.getDialect();
this.sequenceName = jdbcEnvironment.getQualifiedObjectNameFormatter().format(
sequence.getName(),
dialect
);
this.sql = jdbcEnvironment.getDialect().getSequenceNextValString( sequenceName );
}
@Override
public Exporter<Sequence> getSequenceExporter() {
return NOOP_EXPORTER;
}
@Override
public boolean includeSequence( Sequence sequence ) {
return true;
}
public Exporter<Sequence> getSequenceExporter() {
return sequenceExporter;
}
@Override
public boolean includeSequence(Sequence sequence) {
return false;
}
@Override
public Exporter<Sequence> getSequenceExporter() {
return getInstance().getSequenceExporter();
}
/**
* Should the given sequence be included? If {@code true}, the
* sequence will be further processed; if {@code false}, processing will skip this
* sequence.
*
* @param sequence The sequence to check for inclusion
*
* @return {@code true} to include the sequence; {@code false} otherwise
*/
boolean includeSequence(Sequence sequence);