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 ?
/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
>