[hibernate-dev] Metamodel tests
Steve Ebersole
steve at hibernate.org
Sun Jul 29 16:38:32 EDT 2012
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
More information about the hibernate-dev
mailing list