[hibernate-dev] SchemaCreatorImpl always creating a poolable sequence
Steve Ebersole
steve at hibernate.org
Sat Jul 30 08:11:40 EDT 2016
Moving this functionality into the Exporter is the correct answer.
Eventually those DIalect methods will go away.
On Sat, Jul 30, 2016 at 3:32 AM Mark Rotteveel <mark at lawinegevaar.nl> wrote:
> On 28-7-2016 18:07, Steve Ebersole wrote:
> > I do think this is an error. I think the proper fix is to first
> > make use of Exporter<Sequence>#getSqlCreateStrings via
> > Dialect#getSequenceExporter.
> >
> > From there, either:
> >
> > 1. Change the standard Exporter<Sequence> to look at
> > Dialect#supportsPooledSequences and deciding which
> > Dialect#getCreateSequenceStrings form to call
> > 2. Change Firebird's Exporter<Sequence> impl
>
> I have fixed the immediate problem by implementing the
> getCreateSequenceStrings(String, int, int) and
> getCreateSequenceString(String, int, int) as:
>
> @Override
> public String[] getCreateSequenceStrings(String sequenceName, int
> initialValue, int incrementSize) throws MappingException {
> return new String[] {
> getCreateSequenceString( sequenceName, initialValue,
> incrementSize ),
> "alter sequence " + sequenceName + " restart with " +
> (initialValue - 1)
> };
> }
>
> @Override
> protected String getCreateSequenceString(String sequenceName, int
> initialValue, int incrementSize)
> throws MappingException {
> if (incrementSize > 1) {
> throw new MappingException( getClass().getName() + " does not
> support pooled sequences" );
> }
> // Ignore initialValue and incrementSize
> return getCreateSequenceString( sequenceName );
> }
>
> So as long as a non-pooled sequence (incrementSize = 1) is requested the
> Firebird25Dialect will happily oblige. I will add a similar solution to
> the InterbaseDialect and FirebirdDialect.
>
> > I'd also suggest we properly deprecate Dialect#supportsPooledSequences,
> > Dialect#getCreateSequenceStrings directing to
> Dialect#getSequenceExporter.
>
> The problem with that is that the StandardSequenceExporter uses
> getCreateSequenceStrings to do its work, so deprecating that would
> require more rework.
>
> Mark
> --
> Mark Rotteveel
>
More information about the hibernate-dev
mailing list