[hibernate-dev] Metamodel tests

Gail Badner gbadner at redhat.com
Tue Jul 31 01:27:57 EDT 2012


This is due to HHH-6566 (Create and drop SQL is not exported for PersistentIdentifierGenerator objects).

----- Original Message -----
> From: "Steve Ebersole" <steve at hibernate.org>
> To: "Strong Liu" <stliu at hibernate.org>
> Cc: "Hibernate hibernate-dev" <hibernate-dev at lists.jboss.org>
> Sent: Sunday, July 29, 2012 3:11:00 PM
> Subject: Re: [hibernate-dev] Metamodel tests
> 
> For what its worth... I tried adding this for y'all before I left,
> but
> it actually does not at all affect the tests.  Not sure what tests
> you
> saw failing because the id sequence/table is not there, but I tried a
> few tests that use sequences and they all fail trying to build the
> MetaData object.  If tests are failing because the sequences do not
> get
> exported to the database, the failures would be well after than point
> trying to issues SQL against the database.
> 
> Anyway I pushed the code that adds this to SchemaExport:
> https://github.com/hibernate/hibernate-orm/commit/b2ef3b67b2cb8a2e134bf08e267c29e78335650b
> 
> I'll hook in the new schema management tool service when i get back.
> 
> 
> On 07/29/2012 03:38 PM, Steve Ebersole wrote:
> > Just a reminder that I am on vacation this next week.
> >
> > If you want this in the meantime, you just need to alter the
> > org.hibernate.metamodel.spi.relational.Database#generateSchemaCreationScript
> > and
> > org.hibernate.metamodel.spi.relational.Database#generateDropSchemaScript
> > methods.   There is a
> > org.hibernate.metamodel.spi.relational.Schema#sequences collection,
> > but
> > they wont be populated using this
> > generateSchemaCreationScript/generateDropSchemaScript approach, so
> > in
> > there you will need a way to find all persistent identifier
> > generators
> > (please DO NOT collect them on Database/Schema) and handle it.
> >
> > Those methods will go away when I fully hook up the schema
> > management
> > tools (they are only used from SchemaExport) so don't worry about
> > breaking the schema management tool code.  And the new code will
> > add
> > sequences and tables from persistent identifier generator as we
> > discover
> > them (not coded yet)
> >
> > Or just wait till I get back..
> >
> > On 07/29/2012 01:35 PM, Steve Ebersole wrote:
> >>
> >> Yep I have not hooked my new schema management tool stuff into
> >> metamodel creation yet.
> >>
> >> On Jul 29, 2012 1:24 PM, "Strong Liu" <stliu at hibernate.org
> >> <mailto:stliu at hibernate.org>> wrote:
> >>
> >>     btw, some tests are failing due to the identifier generator
> >>     required sequence are not created.
> >>
> >>     org.hibernate.id.PersistentIdentifierGenerator#sqlCreateStrings
> >>     is
> >>     never get called
> >>
> >>     (yes, i see there is
> >>     a org.hibernate.id.SequenceGenerator#registerExportables)
> >>
> >>
> >>     and others are failing with stacktrace:
> >>
> >>     javax.persistence.PersistenceException: [PersistenceUnit:
> >>     FlushAndTransactionTest] Unable to build Hibernate
> >>     SessionFactory
> >>     	at
> >>     	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:973)
> >>     	at
> >>     	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildEntityManagerFactory(EntityManagerFactoryBuilderImpl.java:782)
> >>     	at
> >>     	org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase.buildEntityManagerFactory(BaseEntityManagerFunctionalTestCase.java:93)
> >>     	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown
> >>     	Source)
> >>     	at
> >>     	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>     	at java.lang.reflect.Method.invoke(Method.java:601)
> >>     	at
> >>     	org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
> >>     	at
> >>     	org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> >>     	at
> >>     	org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
> >>     	at
> >>     	org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
> >>     	at
> >>     	org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
> >>     	at
> >>     	org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:62)
> >>     Caused by: org.hibernate.MappingException: Could not
> >>     instantiate id generator
> >>     [entity-name=org.hibernate.jpa.test.transaction.Book]
> >>     	at
> >>     	org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:123)
> >>     	at
> >>     	org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:219)
> >>     	at
> >>     	org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:359)
> >>     	at
> >>     	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1748)
> >>     	at
> >>     	org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildEntityManagerFactory(EntityManagerFactoryBuilderImpl.java:779)
> >>     	... 10 more
> >>     Caused by: java.lang.NullPointerException
> >>     	at
> >>     	org.hibernate.id.enhanced.TableGenerator.determineGeneratorTableName(TableGenerator.java:353)
> >>     	at
> >>     	org.hibernate.id.enhanced.TableGenerator.configure(TableGenerator.java:299)
> >>     	at
> >>     	org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:117)
> >>     	... 14 more
> >>
> >>
> >>
> >>     On Jul 30, 2012, at 1:34 AM, Strong Liu <stliu at hibernate.org
> >>     <mailto:stliu at hibernate.org>> wrote:
> >>
> >>>     I was not aware of that, the root issue is
> >>>     "org.hibernate.metamodel.internal.source.annotations.attribute.Column#name"
> >>>     has a default empty string value.
> >>>
> >>>
> >>>     On Jul 30, 2012, at 1:30 AM, Steve Ebersole
> >>>     <steve at hibernate.org
> >>>     <mailto:steve at hibernate.org>> wrote:
> >>>
> >>>>     Hadn't we all agreed though that the convention was for
> >>>>     sources
> >>>>     to return null and not empty strings?
> >>>>
> >>>>     On Jul 29, 2012 11:11 AM, "Strong Liu" <stliu at hibernate.org
> >>>>     <mailto:stliu at hibernate.org>> wrote:
> >>>>
> >>>>         https://hibernate.onjira.com/browse/HHH-7480
> >>>>
> >>>>         don't know which change caused this, but it is fixed now
> >>>>
> >>>>         On Jul 28, 2012, at 10:27 AM, Steve Ebersole
> >>>>         <steve at hibernate.org <mailto:steve at hibernate.org>>
> >>>>         wrote:
> >>>>
> >>>>>         Not sure if the expectation at this point is that all
> >>>>>         tests
> >>>>>         on the
> >>>>>         metamodel branch pass when
> >>>>>         hibernate.test.new_metadata_mappings is set
> >>>>>         to true or not.  That was supposed to be the idea with
> >>>>>         the new
> >>>>>         @FailureExpectedWithNewMetamodel annotation which I see
> >>>>>         is
> >>>>>         in place now.
> >>>>>          But I am still seeing failures.  Yes I have local
> >>>>>          changes
> >>>>>         here, but
> >>>>>         there is no way my changes can be causing these:
> >>>>>
> >>>>>
> >>>>>         Test
> >>>>>         org.hibernate.metamodel.internal.source.annotations.entity.TableNameTest
> >>>>>
> >>>>>         FAILED
> >>>>>         Test
> >>>>>         org.hibernate.metamodel.internal.source.annotations.entity.AccessBindingTest
> >>>>>
> >>>>>         FAILED
> >>>>>         Test
> >>>>>         org.hibernate.metamodel.internal.source.annotations.entity.InheritanceBindingTest
> >>>>>
> >>>>>         FAILED
> >>>>>
> >>>>>
> >>>>>         The failures in all cases is from attempt to bind the
> >>>>>         discriminator from
> >>>>>         annotations.  As far as I can tell the cause is that
> >>>>>         annotation sources
> >>>>>         are returning empty string for that column name rather
> >>>>>         than
> >>>>>         null.
> >>>>>
> >>>>>         But either way, nothing to do with my changes.  So I am
> >>>>>         going to go
> >>>>>         ahead and push my changes
> >>>>>
> >>>>>
> >>>>>
> >>>>>         --
> >>>>>         steve at hibernate.org <mailto:steve at hibernate.org>
> >>>>>         http://hibernate.org <http://hibernate.org/>
> >>>>>         _______________________________________________
> >>>>>         hibernate-dev mailing list
> >>>>>         hibernate-dev at lists.jboss.org
> >>>>>         <mailto:hibernate-dev at lists.jboss.org>
> >>>>>         https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>>>
> >>>>         -------------------------
> >>>>         Best Regards,
> >>>>
> >>>>         Strong Liu <stliu at hibernate.org
> >>>>         <http://hibernate.org/>>
> >>>>         http://about.me/stliu/bio
> >>>>
> >>>
> >>>     -------------------------
> >>>     Best Regards,
> >>>
> >>>     Strong Liu <stliu at hibernate.org <http://hibernate.org/>>
> >>>     http://about.me/stliu/bio
> >>>
> >>
> >>     -------------------------
> >>     Best Regards,
> >>
> >>     Strong Liu <stliu at hibernate.org <http://hibernate.org/>>
> >>     http://about.me/stliu/bio
> >>
> >
> >
> > --
> > steve at hibernate.org
> > http://hibernate.org
> >
> 
> --
> steve at hibernate.org
> http://hibernate.org
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> 


More information about the hibernate-dev mailing list