[hibernate-dev] More Dialect and quoting fun

Steve Ebersole steve at hibernate.org
Wed May 27 12:30:28 EDT 2015


I went ahead and got something in for CR1.  Take a look...

On Wed, May 27, 2015 at 8:50 AM, Steve Ebersole <steve at hibernate.org> wrote:

> I actually started with the third approach.  But you bring up a good point
> about allowing the Dialect to access the DatabaseMetaData (and hence
> Connection) if it wanted to.  So I would change that a bit.  See the
> updated gist
>
> On Wed, May 27, 2015 at 7:33 AM, Max Rydahl Andersen <manderse at redhat.com>
> wrote:
>
>>
>> > The old
>> > way was calling one or more of the 50,000 (give or take ;) true/false
>> > methods on Dialect at runtime.  The new evolving approach is to build
>> > delegates/helpers at boot time that encapsulate all that.  Most of that
>> > work so far is encapsulated by JdbcEnvironment.  One piece of this
>> > JdbcEnvironment is this IdentifierHelper
>> > (JdbcEnvironment#getIdentifierHelper).
>> >
>> > Maybe it makes the most sense to psuedo-code some approaches:
>> > https://gist.github.com/sebersole/46b5b7968e748648f562
>>
>> Of these I think the outline in "first approach" is the best
>> since it does give the Dialect a chance to actually "talk" to the
>> server to figure out a possible better lookup than the jdbcDriver does.
>>
>> But as you said the dialect must handle getting null passed in - just
>> don't
>> see a better way to handle that.
>>
>> Could even keep the implicit contract of if you return null it will
>> do as described in "second approach" and have a decent fallback.
>>
>> /max
>>
>>
>> >
>> >
>> >
>> >> One concern about DatabaseMetaData that hit the tools a few times is
>> that
>> >> getting this can be extremely expensive for some drivers (I don't
>> recall
>> >> which
>> >> exactly, but Oracle comes to mind ;)
>> >>
>> >
>> > We get this once per bootstrap.
>>
>>
>> /max
>> http://about.me/maxandersen
>>
>
>


More information about the hibernate-dev mailing list