[hibernate-dev] New metamodel and NamingStrategy
Steve Ebersole
steve at hibernate.org
Tue Feb 21 11:12:53 EST 2012
We discussed this a little in the meeting.
There is another, contradictory "requirement" that the sources
(org.hibernate.metamodel.spi.sources) be able to report back all
logical names. Initially we had decided to try and have sources return
null to indicate that the naming strategy should be applied to infer
the table name. Thus column sources would need to return null as well
in response to RelationalValueSource#getContainingTableName to indicate
they come from the "primary" table (since sources don't know that
NamingStrategy inferred name). There is a particular case that I am
not sure this "return null" approach will work, namely the various
relational parts of a collection. If we end up needing to push the
calls to NamingStrategy down into the sources, the calls will still
need to be the same old string-based ones.
On Mon 20 Feb 2012 01:15:56 PM CST, Steve Ebersole wrote:
> Grrr, of course that last line should have read:
>
> Essentially replaces NamingStrategy#classToTableName
>
> On Fri 17 Feb 2012 01:01:09 PM CST, Steve Ebersole wrote:
>> As an example to start discussions, here is my first method proposal:
>>
>> public interface LogicalNamingStrategy {
>> /**
>> * Determine the logical table name to use for the specified entity in
>> cases where the mapping did
>> * not specify one explicitly.
>> *
>> * @param entity The entity for which to determine the table name.
>> *
>> * @return The table name identifier to use
>> */
>> public Identifier logicalTableName(Entity entity);
>> }
>>
>> Essentially replaces NamingHelper#classToTableName
>> On Fri 17 Feb 2012 12:25:37 PM CST, Steve Ebersole wrote:
>>> In Austin we had discussed splitting up NamingStrategy into
>>> LogicalNamingStrategy and PhysicalNamingStrategy. I am starting to
>>> think though and work on that task.
>>>
>>> We said that the "sources" (the collective term for annotations and
>>> hbm.xml) would return null to indicate that the logical naming
>>> should kick in. The idea being to allow the sources to remain as
>>> true as possible to the actual user supplied values.
>>>
>>> Anyway, just wanted to open this up to wider discussion.
>>>
>>> Btw the related issues are:
>>> https://hibernate.onjira.com/browse/HHH-7077
>>> https://hibernate.onjira.com/browse/HHH-7078
>>> https://hibernate.onjira.com/browse/HHH-7079
>>>
>>
>
--
steve at hibernate.org
http://hibernate.org
More information about the hibernate-dev
mailing list