Metamodel classes model an entity’s attributes and are used by Criteria queries to navigate to an entity’s attributes. Each entity class in roster has a corresponding metamodel class, generated at compile time, with the same package name as the entity and appended with an underscore character (_). For example, the roster.entity.Person entity has a corresponding metamodel class, roster.entity.Person_.
Each persistent field or property in the entity class has a corresponding attribute in the entity’s metamodel class. For the Person entity, the corresponding metamodel class is:
@StaticMetamodel(Person.class) public class Person_ { public static volatile SingularAttribute<Player, String> id; public static volatile SingularAttribute<Player, String> name; public static volatile SingularAttribute<Player, String> position; public static volatile SingularAttribute<Player, Double> salary; public static volatile CollectionAttribute<Player, Team> teams; }