"unable to locate static metamodel field" caused by MetadataContext.applyIdMetadata(PersistentClass, EntityTypeImpl)
Description
Hello,
Hibernate throws the following error on startup: MetadataContext.registerAttribute:421 - Unable to locate static metamodel field : org.foo.test.inheritance.singlePk.MoviePoster_#posterId
The entity MoviePoster is a subclass of the entity Poster. Poster uses the @IdClass annotation to define a primary key class and has a field posterId tagged with @Id
After some debugging I found this piece of code in MetadataContext, that adds the property of my id class to the metadata-list of MoviePoster, because the id class has only one property:
Line 251: else { final KeyValue value = persistentClass.getIdentifier(); if (value instanceof Component ) { final Component component = ( Component ) value; if ( component.getPropertySpan() > 1 ) { //FIXME we are an Hibernate embedded id (ie not type) } else { //FIXME take care of declared vs non declared property jpaEntityType.getBuilder().applyIdAttribute( attributeFactory.buildIdAttribute( jpaEntityType, (Property) component.getPropertyIterator().next() ) ); } } }
I'm not quite sure, if this is a bug or improvement, because I couldn't find any problems so far. This bug seems to be related to HHH-5024, but the testcases are quite different.
The attached file contains a testcase with a single-column and multi-column id-class.
Attachments
1
04 Nov 2011, 07:13 PM
Activity
Christian BeikovApril 8, 2022 at 3:45 PM
Since no test case was provided for years, I'll close this issue as out of date. I also believe it will most probably not be an issue any more in 6.0. If this still is an issue for you, please create a new issue with a test case that reproduces the problem.
Steve EbersoleOctober 28, 2015 at 3:24 AM
As part of verifying that this issue affects 5.0, please just set the "Affects version". Leave the "verify-affects-5.0" label and leave the issue in "Awaiting Response" status; these are critical for us to be able to track these verifications and triage them. Thanks.
Steve EbersoleOctober 27, 2015 at 7:16 PM
This bug report does not indicate that the reported issue affects version 5.x. Versions prior to 5.x are no longer maintained. It would be a great help to the Hibernate team and community for someone to verify that the reported issue still affects version 5.x. If so, please add the 5.x version that you verified with to the list of affected-versions and attach the (preferably SSCCE) test case you used to do the verification to the report; from there the issues will be looked at during our triage meetings.
Hello,
Hibernate throws the following error on startup:
MetadataContext.registerAttribute:421 - Unable to locate static metamodel field : org.foo.test.inheritance.singlePk.MoviePoster_#posterId
The entity MoviePoster is a subclass of the entity Poster.
Poster uses the @IdClass annotation to define a primary key class and has a field posterId tagged with @Id
After some debugging I found this piece of code in MetadataContext, that adds the property of my id class to the metadata-list of MoviePoster,
because the id class has only one property:
Line 251:
else {
final KeyValue value = persistentClass.getIdentifier();
if (value instanceof Component ) {
final Component component = ( Component ) value;
if ( component.getPropertySpan() > 1 ) {
//FIXME we are an Hibernate embedded id (ie not type)
}
else {
//FIXME take care of declared vs non declared property
jpaEntityType.getBuilder().applyIdAttribute(
attributeFactory.buildIdAttribute(
jpaEntityType,
(Property) component.getPropertyIterator().next() )
);
}
}
}
I'm not quite sure, if this is a bug or improvement, because I couldn't find any problems so far.
This bug seems to be related to HHH-5024, but the testcases are quite different.
The attached file contains a testcase with a single-column and multi-column id-class.