You can have a look at my pull request to see exaclty what I mean. https://github.com/hibernate/hibernate-core/pull/9 (two commits form that branch)
On Wed, Nov 3, 2010 at 1:54 PM, Tomasz Blachowicz <tblachow...@gmail.com>wrote: > I think I understand what you mean. "Node name" might not be indeed the > best way to do that. > > I think implementation of the EntityBinder with regards to the handling of > @Entity.name is correct. My understanding of the jsr-317 is that the entity > name used in queries should be @Entity.name if specified otherwise the > default value that is unqualified name of the entity class. This is how > EntityBinder works now I presume (EntityBinder#bindEjb3Annotation(@Entity)). > The think is that this value is set to the name field of EntityBinder and > then used to set PresistentClass#setNodeName(). > > I wonder how I could implement the meta model change to make sure the > EntityType#getName() returns @Entity.name or unqualified class name in case > the @Entity.name has not been specified. How about adding new property to > the PersistentClass that would hot the value as computed in EntityBinder and > the I could use the value of this property to populate EntityTypeImpl from > MetamodelImpl#buildEntityType? Can you comment that approach? > > > On Wed, Nov 3, 2010 at 1:22 PM, Steve Ebersole <st...@hibernate.org>wrote: > >> Ah, I misread. I thought you meant the Hibernate notion of an "entity >> name". >> As far as I can tell now looking at it, there is no such annotation equiv >> for >> that. >> >> @javax.persistence.Entity.name is really more akin to Hibernate's notion >> of an >> import name for queries. >> >> I am not really understanding the benefit of returning the query import >> name >> for EntityType.getName(). Personally I think its just a case of badly >> matched >> attribute names and an inference being drawn there. >> >> But we do not really use that internally, so i have no qualms with >> changing it >> I guess. However, I do not want "node name" used. That is a totally >> different beast, and if annotations ever support alternate entity modes >> this >> will become a problem in this code you suggest; its currently working just >> by >> a quirk where the default node name just happens to be the unqualified >> entity >> name, and I am assuming the annotation binding code is setting it if >> @Entity.name is specified as well. To be honest, after looking at >> org.hibernate.cfg.annotations.EntityBinder#bindEntity my first thought was >> whether this code even handles @Entity.name properly in terms of making it >> an >> import name. It would work as is for the default case because that is >> Hibernate's internal default behavior (to register the unqualified entity >> name >> as an import name). >> >> >> On Wednesday, November 03, 2010, at 07:58 am, Steve Ebersole wrote: >> > If that is really the case, then that is a problem with the annotation >> > binding code. >> > >> > On Wednesday, November 03, 2010, at 06:50 am, Tomasz Blachowicz wrote: >> > > Hi Steve, >> > > >> > > PersistentClass#getEntityName is not good, because it is exactly the >> same >> > > value as PersistentClass#getClassName. >> > > PersistentClass#getClassName is populated in >> > > org.hibernate.cfg.annotations.EntityBinder#bindEntity with the value >> from >> > > org.hibernate.annotations.common.reflection.java.JavaXClass#getName. >> > > JavaXClass#getName is implemented as clazz.getName(), so it is always >> > > class name and the @Entity.name is simply ignored for the purpose of >> the >> > > entity name. And this is the reason I used PersistentClass#getNodeName >> > > that returns @Entity.name or "unqualified" class name in case >> > > @Entity.name is unspecified. >> > > >> > > If I'd stick with PersistentClass#getEntityName the issues is not >> > > resolved and EntityType.getName() returns stil FQN of the class >> instead >> > > of @Entity.name or "unqualified" class name. >> > > >> > > Regards, >> > > Tom >> > > >> > > On Wed, Nov 3, 2010 at 11:12 AM, Steve Ebersole <st...@hibernate.org> >> wrote: >> > > > Uncertain yet of how these pull request comments work on GitHub, so >> I >> > > > thought >> > > > I'll make sure and respond here. The change should use >> > > > org.hibernate.mapping.PersistentClass#getEntityName instead of >> > > > org.hibernate.mapping.PersistentClass#getNodeName. >> > > > >> > > > See my other email to the dev list about porting to 3.6 >> > > > >> > > > On Wednesday, November 03, 2010, at 05:48 am, Tomasz Blachowicz >> wrote: >> > > > > I've submitted the pull request ( >> > > > > https://github.com/hibernate/hibernate-core/pull/8) for master. I >> > > > > should have it also ready for 3.6 branch as soon as I manage to >> merge >> > > > > the change between branches in this git thng that is pretty new to >> me >> > > > > ;) >> > > > > >> > > > > On Tue, Nov 2, 2010 at 1:18 PM, Emmanuel Bernard >> > > > >> > > > <emman...@hibernate.org>wrote: >> > > > > > Cool :) >> > > > > > If you use GitHub's infrastructure and use a pull-request, we >> can >> > > > > > get that integrated quite fast. >> > > > > > >> > > > > > On 2 nov. 2010, at 13:50, Tomasz Blachowicz wrote: >> > > > > > >> > > > > > I've already created the ticket ( >> > > > > > >> http://opensource.atlassian.com/projects/hibernate/browse/HHH-5709) >> > > > > > . And I should be able to create the patch sometime this >> evening. >> > > > > > >> > > > > > Cheers, >> > > > > > Tom >> > > > > > >> > > > > > On Tue, Nov 2, 2010 at 12:24 PM, Emmanuel Bernard >> > > > >> > > > <emman...@hibernate.org>wrote: >> > > > > >> I'd say you're correct and the name should match in the >> metamodel. >> > > > > >> Can you open a JIRA issue and even better try and work out a >> > > > > >> patch? >> > > > > >> >> > > > > >> PS: I've spilled hot chocolate on my laptop in the past: not >> good, >> > > > > >> the machine slowly but inevitably dies as corrosion wins it >> over. >> > > > > >> >> > > > > >> On 2 nov. 2010, at 12:35, Tomasz Blachowicz wrote: >> > > > > >> > Hi, >> > > > > >> > >> > > > > >> > I had been working recently on some stuff that deals with >> JPA2 >> > > > > >> > meta >> > > > > >> >> > > > > >> model. >> > > > > >> >> > > > > >> > Hibernate is my JPA2 provider/engine. Everything works fine >> > > > > >> > except >> > > > >> > > > one >> > > > >> > > > > >> > little thing that is name of the Entity. I'd expect that >> value >> > > > > >> > returned >> > > > > >> >> > > > > >> by >> > > > > >> >> > > > > >> > EntityType.getName() would be the same as @Entity.name but >> not >> > > > > >> > the >> > > > >> > > > FQN >> > > > >> > > > > >> of >> > > > > >> >> > > > > >> > the entity class. Although this is not explicitly stated in >> the >> > > > > >> > JPA2 specification it is reasonable to expect that >> @Entity.name >> > > > > >> > or the >> > > > > >> >> > > > > >> default >> > > > > >> >> > > > > >> > value (shortened class name) is the name of the entity used >> in >> > > > >> > > > queries >> > > > >> > > > > >> ans >> > > > > >> >> > > > > >> > well as other places such as meta model. I know the topic of >> > > > > >> > entity name >> > > > > >> >> > > > > >> was >> > > > > >> >> > > > > >> > discussed many times in the past (HHH-2597, HHH-4375, >> HHH-4465, >> > > > > >> >> > > > > >> HHH-5709), >> > > > > >> >> > > > > >> > and the rationale has been given for current implementation >> of >> > > > > >> >> > > > > >> Hibernate, >> > > > > >> >> > > > > >> > however the topic hasn't been touched in the context of meta >> > > > > >> > model that >> > > > > >> >> > > > > >> is >> > > > > >> >> > > > > >> > new stuff added in JPA2. >> > > > > >> > >> > > > > >> > I just wanted to know what is your thinking with regards to >> the >> > > > >> > > > matter >> > > > >> > > > > >> at >> > > > > >> >> > > > > >> > this stage and how likely is implementation of Hibernate >> would >> > > > >> > > > change >> > > > >> > > > > >> > to match EntityType.getName with @Entity.name. >> > > > > >> > >> > > > > >> > P.S. >> > > > > >> > I just have spilled the entire cup of fresh coffee on my >> desktop >> > > > >> > > > while >> > > > >> > > > > >> > writing this message. The mouse seems to be drowned :| >> > > > > >> > >> > > > > >> > Cheers, >> > > > > >> > Tom >> > > > > >> > _______________________________________________ >> > > > > >> > hibernate-dev mailing list >> > > > > >> > hibernate-dev@lists.jboss.org >> > > > > >> > https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > > > > >> > > > > _______________________________________________ >> > > > > hibernate-dev mailing list >> > > > > hibernate-dev@lists.jboss.org >> > > > > https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > > > >> > > > --- >> > > > Steve Ebersole <st...@hibernate.org> >> > > > http://hibernate.org >> > > > _______________________________________________ >> > > > hibernate-dev mailing list >> > > > hibernate-dev@lists.jboss.org >> > > > https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > >> > --- >> > Steve Ebersole <st...@hibernate.org> >> > http://hibernate.org >> >> --- >> Steve Ebersole <st...@hibernate.org> >> http://hibernate.org >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev