[hibernate-dev] SchemaManagementTool / Exportable

Steve Ebersole steve at hibernate.org
Fri Aug 10 12:29:51 EDT 2012


What is everyones thoughts on having Exporter contain methods for 
create, drop and alter scenarios versus getting Exporter per each of 
those actions?

interface Exporter<T extends Exportable> {
    public String[] sqlCreateStrings(T exportable, Dialect dialect);
    public String[] sqlDropStrings(T exportable, Dialect dialect);
    public String[] sqlMigrationStrings(T exportable, Dialect dialect);
}

+

Exporter<Table> gerTableExporter() {
    return ...;
}



versus

interface Exporter<T extends Exportable> {
    public String[] sqlExportStrings(T exportable, Dialect dialect);
}

Exporter<Table> gerTableExporter(Exporter.Action typeOrExport) {
    return ...;
}

I think the first is simpler for our use cases, but I can see how the 
seconds might be simpler for custom ones.

On Fri 10 Aug 2012 01:49:48 AM CDT, Gail Badner wrote:
> +1
>
> ----- Original Message -----
>> From: "Strong Liu" <stliu at hibernate.org>
>> To: "Steve Ebersole" <steve at hibernate.org>
>> Cc: "Hibernate hibernate-dev" <hibernate-dev at lists.jboss.org>
>> Sent: Thursday, August 9, 2012 9:15:32 PM
>> Subject: Re: [hibernate-dev] SchemaManagementTool / Exportable
>>
>>
>> +1
>>
>> On Aug 10, 2012, at 12:38 AM, Steve Ebersole <steve at hibernate.org>
>> wrote:
>>
>>> The basics of org.hibernate.service.schema.spi.SchemaManagementTool
>>> are
>>> essentially done.  There is a lot of clean up I want to do after
>>> Configuration is gutted or removed, changing how SchemaExport, etc
>>> work
>>> internally.
>>>
>>> But one thing I wanted to discuss was to change up how Exportable
>>> works.
>>>   Today, its really not much different than what we used to do.  The
>>> database objects themselves know how to render themselves into SQL
>>> CREATE/DROP/ALTER commands.  What I am contemplating is
>>> externalizing
>>> this rendering (lets call them ExportableRenderer, thought better
>>> names
>>> welcome).  This would serve 2 useful purposes:
>>> 1) Clean up the Table, Sequence, etc code clutter.
>>> 2) Allow plugging in alternate renderings for things.  This could
>>> be
>>> dialects or users or event custom SchemaManagementTool supplied.
>>>
>>> WDYT?
>>>
>>> --
>>> steve at hibernate.org
>>> http://hibernate.org
>>> _______________________________________________
>>> hibernate-dev mailing list
>>> hibernate-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>> -------------------------
>> Best Regards,
>>
>> Strong Liu <stliu at hibernate.org>
>> http://about.me/stliu/bio
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>

--
steve at hibernate.org
http://hibernate.org


More information about the hibernate-dev mailing list