When you use Tablename="x.y" then naming strategy is not supposed to be involved
thus it ain't really related for this.
And that you use a . in entity name or table name does not relate to packages at all.
Thus the question is why x.y as entityname is treated differently in classToTableName than
in all the other cases, i.e. the first column.
/max
On May 13, 2010, at 09:45, Dmitry Geraskov wrote:
12/05/2010 19:32, Andersen Max wrote:
> We integrated naming strategy into Eclipse JPA tooling so when it checks if a
table/column
> exists it won't just use the JPA defaults.
>
> And I assume Dimitry found some inconsistency in that work.
> But yeah, i'm also not fully following what Dimitry's problem is beyond
> why @Entity(name="e.M11") doesn't result in e_M11 as table name ?
>
>
I created a table to show you what I think:
NSMethod /Annotation @Entity(name="x.y")
@Tablename="(x.y")
classToTableName
x.y
-
tableName
-
x.y
collectionTableName
y
x.y
foreignKeyColumnName
y
x.y
I expect to see the same values for whole column. @Table is ok - hibernate leaves
"x.y" to the NamingStrategy implementator. He will decide what to do with the
dot.
But what about @Entity? Sometimes we say him the "name of the package",
sometimes not. This is strange and looks like a bug.
Dmitry.
> /max
>
> On May 12, 2010, at 18:12, Emmanuel Bernard wrote:
>
>
>
>> You guys lost me, I'm out of context.
>> Any change I get the actual naming strategy code, the Hibernate Annotations and
Core version you are talking about and more important what are you guys trying to do :)
>>
>> On 12 mai 2010, at 18:02, Andersen Max wrote:
>>
>>
>>
>>> On May 12, 2010, at 16:54, Dmitry Geraskov wrote:
>>>
>>>
>>>
>>>> Hi, Emmanuel,
>>>>
>>>> The problem is in interpretation of specified names with dots.
>>>>
>>>> I created naming strategy where all method just join all passed
parameters with "_".
>>>> For example
>>>> @Override
>>>> public String collectionTableName(String ownerEntity, String
ownerEntityTable, String associatedEntity,
>>>> String associatedEntityTable, String propertyName) {
>>>> return ownerEntity + "_"+ associatedEntity+ "_"
+ associatedEntityTable + "_" + associatedEntity +
>>>> "_" +propertyName;
>>>> }
>>>>
>>>>
>>>> And what I have found:
>>>>
>>>> @Entity(name = "e.M11")
>>>> public class ManyToMany1 implements Serializable {
>>>>
>>>> }
>>>>
>>>>
>>>>
>>> but that is not a collection table - its an Entity Table ...
>>>
>>>
>>>
>>>> What do you think will be DB table name? The correct answer is
"e.M11".
>>>>
>>>>
>>> I would have assumed e_M11 ....so yeah thats a bit surprising.
>>>
>>>
>>>
>>>> The same for @Entity @Table(name = "e.M11")
>>>>
>>>>
>>>>
>>> Here you are overriding namingstrategy so that shouldn't be surprising.
>>>
>>>
>>>
>>>> But when this entity is used in relationship mapping as target entity
things become different:
>>>> for @Entity(name = "e.M11")
entity.ManyToMany2_entity.ManyToMany1_M11_entity.ManyToMany1_mtm1
>>>> for @Table(name = "e.M11")
entity.ManyToMany2_entity.ManyToMany1_e.M11_entity.ManyToMany1_mtm1
>>>>
>>>>
>>> I'm not seeing this as different. In one case you are saying naming
strategy should do its thing Entity(name="e.M11")
>>> and in the other you override it (i.e. @Table(name="e.M11").
>>>
>>> Remember name on entity is for *entity*-name not table name.
>>>
>>>
>>>
>>>> I didn't see any specification for how NamingStrategy should be used.
And I even *fear* to compare this behaviour with core hibernate behaviour. I guess there
will be some differences too.
>>>>
>>>>
>>> I remember emmanuel having fun with mapping JPA naming standards over to
Hibernate NamingStrategy especially when
>>> it came to collections and entity names ...but I don't recall the
conclusion.
>>>
>>> Surprised entity name's doesn't seem to be processed on equal footing
as class names. (i.e. why does @Entity(name="e.M11") not reasult in e_M11 as
table name ?
>>>
>>> /max
>>>
>>>
>>>
>>
>