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