################################################################################
# Copyright (c) 2009, 2013 Oracle. All rights reserved.
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v1.0, which accompanies this distribution
# and is available at http://www.eclipse.org/legal/epl-v10.html.
# 
# Contributors:
#     Oracle - initial API and implementation
################################################################################

# JptJpaCoreValidationMessages

# NB: The entries in this file must be kept in sync with the validation messages in
# jpt_jpa_core_validation.properties.

### Project ###
NO_JPA_PROJECT=Project has JPA facet, but JPA project couldn't be created
JPA_VALIDATION_FAILED=
PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS=Multiple persistence units defined
PERSISTENCE_NO_PERSISTENCE_UNIT=No persistence unit defined
PERSISTENCE_XML_INVALID_CONTENT=Invalid content (no root node)
PERSISTENCE_XML_UNSUPPORTED_CONTENT=Persistence.xml file does not have supported content for JPA platform
PROJECT_INACTIVE_CONNECTION=Connection is not active
PROJECT_INVALID_CONNECTION=Connection does not exist
PROJECT_INVALID_LIBRARY_PROVIDER=Selected library provider is invalid
PROJECT_MULTIPLE_PERSISTENCE_XML=Multiple persistence.xml files in project
PROJECT_NO_CONNECTION=No connection specified for project
PROJECT_NO_PERSISTENCE_XML=No persistence.xml file found in project
XML_VERSION_NOT_LATEST=XML document version not most recent

### Persistence Unit ###
MAPPING_FILE_EXTRANEOUS_PERSISTENCE_UNIT_METADATA=Extraneous persistence unit metadata found
PERSISTENCE_UNIT_DUPLICATE_CLASS=Duplicate Java class
PERSISTENCE_UNIT_DUPLICATE_JAR_FILE=Duplicate JAR file
PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE=Duplicate mapping file
PERSISTENCE_UNIT_NONEXISTENT_CLASS=Class cannot be resolved
PERSISTENCE_UNIT_LISTED_CLASS_IS_AN_INTERFACE=Listed class must not be an interface
PERSISTENCE_UNIT_LISTED_CLASS_IS_AN_ENUM=Listed class must not be an enum
PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE=Mapping file cannot be resolved
PERSISTENCE_UNIT_NONEXISTENT_JAR_FILE=JAR file cannot be resolved
PERSISTENCE_UNIT_INVALID_CLASS=Class is listed in the persistence.xml file but is not annotated
PERSISTENCE_UNIT_INVALID_MAPPING_FILE=Mapping file does not have ORM content
PERSISTENCE_UNIT_JAR_FILE_DEPLOYMENT_PATH_WARNING=The path to the JAR file will vary
PERSISTENCE_UNIT_REDUNDANT_CLASS=Class is already specified in mapping file
PERSISTENCE_UNIT_UNSPECIFIED_CLASS=Unspecified class
PERSISTENCE_UNIT_UNSPECIFIED_JAR_FILE=Unspecified JAR file
PERSISTENCE_UNIT_UNSPECIFIED_MAPPING_FILE=Unspecified mapping file
PERSISTENCE_UNIT_UNSUPPORTED_MAPPING_FILE_CONTENT=Mapping file does not have supported content

### Type ###
ENTITY_NAME_DUPLICATED=Entity name must be unique 
ENTITY_NAME_MISSING=Entity name is empty
ENTITY_NO_PK=Entity has no primary key
ENTITY_NON_ROOT_ID_ATTRIBUTE_SPECIFIED=Primary key attribute should only be defined on the root entity or a mapped superclass
ENTITY_NON_ROOT_ID_CLASS_SPECIFIED=ID class should only be defined on the root entity or a mapped superclass
MANAGED_TYPE_UNRESOLVED_CLASS=Class in orm.xml cannot be resolved to a java class
MANAGED_TYPE_UNSPECIFIED_CLASS=Class is unspecified in orm.xml
PERSISTENT_TYPE_DUPLICATE_CLASS=Duplicate ORM class
ROOT_ENTITY_HAS_PK_JOIN_COLUMN_DEFINED=Root entity should not have primary key join column defined
TARGET_NOT_AN_EMBEDDABLE=Target type of an embedded mapping is not an embeddable
TYPE_ANNOTATED_BUT_NOT_LISTED_IN_PERSISTENCE_XML=Class is annotated, but is not listed in the persistence.xml file
TYPE_MANAGED_BUT_NOT_LISTED_IN_PERSISTENCE_XML=Class is managed, but is not listed in the persistence.xml file
TYPE_MAPPING_CLASS_MISSING_NO_ARG_CONSTRUCTOR=Mapped Java class has no no-arg constructor
TYPE_MAPPING_CLASS_PRIVATE_NO_ARG_CONSTRUCTOR=Mapped Java class has a private no-arg constructor
TYPE_MAPPING_FINAL_CLASS=Mapped Java class is final
TYPE_MAPPING_ID_AND_EMBEDDED_ID_BOTH_USED=ID and embedded ID are not allowed to be used together
TYPE_MAPPING_ID_CLASS_AND_EMBEDDED_ID_BOTH_USED=ID class and embedded ID mapping are not allowed to be used together
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_DOES_NOT_EXIST=Primary key attribute does not have a matching ID class attribute
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_MAPPING_DUPLICATE_MATCH=Primary key attribute is a duplicate match for ID class
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_MAPPING_NO_MATCH=No ID class attribute matches primary key attribute
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_NO_MATCH=No primary key attribute matches ID class attribute
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_NOT_PRIMARY_KEY=Attribute matching ID class attribute is not mapped as a primary key
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_TYPE_DOES_NOT_AGREE=Attribute matching ID class attribute does not have the correct type
TYPE_MAPPING_ID_CLASS_MISSING_EQUALS_METHOD=ID class does not have a valid equals() defined
TYPE_MAPPING_ID_CLASS_MISSING_HASHCODE_METHOD=ID class does not have a valid hashCode() defined
TYPE_MAPPING_ID_CLASS_MISSING_NO_ARG_CONSTRUCTOR=ID class has no no-arg constructor defined
TYPE_MAPPING_ID_CLASS_MISSING_PUBLIC_NO_ARG_CONSTRUCTOR=ID class must have a public no-arg constructor
TYPE_MAPPING_ID_CLASS_NAME_EMPTY=ID class has an empty name
TYPE_MAPPING_ID_CLASS_NOT_EXIST=ID class does not exist on the project classpath
TYPE_MAPPING_ID_CLASS_NOT_IMPLEMENT_SERIALIZABLE=ID class must implement \"java.io.Serializable\" interface
TYPE_MAPPING_ID_CLASS_NOT_PUBLIC=ID class must be public
TYPE_MAPPING_ID_CLASS_PROPERTY_METHOD_NOT_PUBLIC=The property method of ID class must be public
TYPE_MAPPING_ID_CLASS_REDEFINED=ID class has already been defined on an ancestor of a class
TYPE_MAPPING_ID_CLASS_REQUIRED=ID class must be used when multiple ID mappings defined
TYPE_MAPPING_ID_CLASS_WITH_MAPS_ID="Maps Id" is not allowed to use in conjunction with an ID class
TYPE_MAPPING_MAPS_ID_ATTRIBUTE_TYPE_DOES_NOT_AGREE=Type of "Maps ID" attribute does not agree with primary key class of target entity
TYPE_MAPPING_MEMBER_CLASS=Mapped Java class is a member class
TYPE_MAPPING_MULTIPLE_EMBEDDED_ID=Only one embedded ID mapping is allowed
TYPE_MAPPING_PK_REDEFINED_ID_ATTRIBUTE=No ID mapping allowed on a class when its ancestor already defines primary key
TYPE_MAPPING_PK_REDEFINED_ID_CLASS=No ID class allowed on a class when its ancestor already defines primary key

### Attributes ###
MAP_KEY_CLASS_NOT_DEFINED=Map key class not defined
MAP_KEY_CLASS_NOT_EXIST=Map key class does not exist on the project classpath
MAP_KEY_CLASS_MUST_BE_ENTITY_EMBEDDABLE_OR_BASIC_TYPE=Map key class is not entity, embeddable or basic type
ELEMENT_COLLECTION_TARGET_CLASS_DOES_NOT_EXIST=Element collection target class does not exist on the project classpath
ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=Element collection target class is not embeddable or basic type
ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=Element collection target class is not specified
ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_ELEMENT_COLLECTION_MAPPING=Element collection mapping contains an embeddable which contains a prohibited element collection mapping
ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_PROHIBITED_RELATIONSHIP_MAPPING=Element collection mapping contains an embeddable which contains a prohibited relationship mapping
EMBEDDED_ID_CLASS_SHOULD_BE_PUBLIC=Embedded ID classes should be public
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_EQUALS_HASHCODE=Embedded ID classes should implement equals() and hashcode()
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_NO_ARG_CONSTRUCTOR=Embedded ID classes should implement a zero argument constructor
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_SERIALIZABLE=Embedded ID classes should implement java.io.Serializable
EMBEDDED_ID_CLASS_SHOULD_NOT_CONTAIN_RELATIONSHIP_MAPPINGS=Embedded ID classes should not contain relationship mappings
EMBEDDED_ID_MAPPING_MAPPED_BY_RELATIONSHIP_AND_ATTRIBUTE_OVERRIDES_SPECIFIED=Embedded IDs that are mapped by a relationship should not specify any attribute overrides
ID_MAPPING_MAPPED_BY_RELATIONSHIP_AND_COLUMN_SPECIFIED=IDs that are mapped by a relationship should not specify a column
MAPS_ID_VALUE_INVALID="Maps ID" attribute value invalid
MAPS_ID_VALUE_NOT_RESOLVED="Maps ID" attribute value not resolved
MAPS_ID_VALUE_NOT_SPECIFIED="Maps ID" attribute value not specified
MAPPING_INVALID_MAPPED_BY=Attribute has invalid mapping for this relationship
MAPPING_MAPPED_BY_ON_BOTH_SIDES=Relationship must have an owner
MAPPING_UNRESOLVED_MAPPED_BY=Cannot resolve attribute name
ORDER_COLUMN_AND_ORDER_BY_BOTH_SPECIFIED=OrderColumn and OrderBy annotations are both specified
PERSISTENT_ATTRIBUTE_ELEMENT_COLLECTION_INVALID_VALUE_TYPE=Element collection value type is invalid for a Temporal mapping 
PERSISTENT_ATTRIBUTE_INVALID_TEMPORAL_MAP_KEY_TYPE=Persistence field/property map key type is invalid for a Temporal mapping
PERSISTENT_ATTRIBUTE_FINAL_FIELD=The java field for attribute is final
PERSISTENT_ATTRIBUTE_FINAL_GETTER=The java getter for attribute is final
PERSISTENT_ATTRIBUTE_FINAL_SETTER=The java setter for attribute is final
PERSISTENT_ATTRIBUTE_INHERITED_ATTRIBUTES_NOT_SUPPORTED=In orm.xml referenced inherited attribute may not be supported
PERSISTENT_ATTRIBUTE_INVALID_MAPPING=Attribute has invalid mapping type
PERSISTENT_ATTRIBUTE_INVALID_TEMPORAL_MAPPING_TYPE=Persistence field/property type is invalid for a Temporal mapping
PERSISTENT_ATTRIBUTE_INVALID_VERSION_MAPPING_TYPE=Persistence field/property type is invalid for a Version mapping
PERSISTENT_ATTRIBUTE_PUBLIC_FIELD=The java field for attribute is public
PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME=Attribute in orm.xml cannot be resolved in the java class
PERSISTENT_ATTRIBUTE_UNSPECIFIED_NAME=Attribute in orm.xml has unspecified name
TARGET_ENTITY_IS_NOT_AN_ENTITY=Target entity is not an Entity
TARGET_ENTITY_NOT_DEFINED=Target entity is not defined
TARGET_ENTITY_NOT_EXIST=Target entity does not exist on the project classpath
ATTRIBUTE_TYPE_IS_NOT_SUPPORTED_COLLECTION_TYPE=Collection mapping attribute type must be java.util.Collection, java.util.Set, java.util.List or java.util.Map
VIRTUAL_ATTRIBUTE_MAP_KEY_CLASS_NOT_DEFINED=Map key class not defined
VIRTUAL_ATTRIBUTE_MAP_KEY_CLASS_MUST_BE_ENTITY_EMBEDDABLE_OR_BASIC_TYPE=Map key class is not entity, embeddable or basic type
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_DOES_NOT_EXIST=Element collection target class does not exist on the project classpath
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_ELEMENT_COLLECTION_MAPPING=Element collection mapping contains an embeddable which contains a prohibited element collection mapping
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_PROHIBITED_RELATIONSHIP_MAPPING=Element collection mapping contains an embeddable which contains a prohibited relationship mapping
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=Element collection target class is not embeddable or basic type
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=Element collection target class is not specified
VIRTUAL_ATTRIBUTE_TARGET_ENTITY_IS_NOT_AN_ENTITY=Target entity is not an Entity
VIRTUAL_ATTRIBUTE_TARGET_ENTITY_NOT_DEFINED=Target entity is not defined
VIRTUAL_ATTRIBUTE_INVALID_TEMPORAL_MAP_KEY_TYPE=Persistence field/property map key type is invalid for a Temporal mapping
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_INVALID_VALUE_TYPE=Element collection value type is invalid for a Temporal mapping 
VIRTUAL_ATTRIBUTE_INVALID_TEMPORAL_MAPPING_TYPE=Persistence field/property type is invalid for a Temporal mapping
VIRTUAL_ATTRIBUTE_ATTRIBUTE_TYPE_IS_NOT_SUPPORTED_COLLECTION_TYPE=Collection mapping attribute type must be java.util.Collection, java.util.Set, java.util.List or java.util.Map
VIRTUAL_ATTRIBUTE_TARGET_NOT_AN_EMBEDDABLE=Target type of an embedded mapping is not an embeddable
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_BE_PUBLIC=Embedded ID classes should be public
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_NO_ARG_CONSTRUCTOR=Embedded ID classes should implement a zero argument constructor
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_EQUALS_HASHCODE=Embedded ID classes should implement equals() and hashcode()
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_SERIALIZABLE=Embedded ID classes should implement java.io.Serializable
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_NOT_CONTAIN_RELATIONSHIP_MAPPINGS=Embedded ID classes should not contain relationship mappings
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_MAPPING_MAPPED_BY_RELATIONSHIP_AND_ATTRIBUTE_OVERRIDES_SPECIFIED=Embedded IDs that are mapped by a relationship should not specify any attribute overrides

### Table ###
COLLECTION_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for collection table
COLLECTION_TABLE_UNRESOLVED_NAME=Collection table cannot be resolved
COLLECTION_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for collection table
JOIN_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for join table
JOIN_TABLE_UNRESOLVED_NAME=Join table cannot be resolved
JOIN_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for join table
SECONDARY_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for secondary table
SECONDARY_TABLE_UNRESOLVED_NAME=Secondary table cannot be resolved
SECONDARY_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for secondary table
TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for table
TABLE_UNRESOLVED_NAME=Table cannot be resolved
TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for table
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for collection table
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_NAME=Collection table cannot be resolved
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for collection table
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_CATALOG=Catalog cannot be resolved for join table
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME=Join table cannot be resolved
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA=Schema cannot be resolved for join table
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Secondary table primary key join column name must be specified when there are multiples
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Secondary table primary key join column referenced column name must be specified when there are multiples
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Secondary table primary key join column cannot be resolved
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Secondary table primary key join column referenced column name cannot be resolved

### Column ###
COLUMN_TABLE_NOT_VALID=Table for column not valid given the context
COLUMN_UNRESOLVED_NAME=Column cannot be resolved
COLUMN_UNRESOLVED_TABLE=Table for column cannot be resolved
INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column name must be specified when there are multiples
INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column referenced column name must be specified when there are multiples
INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Table for inverse join column is not valid
INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Inverse join column cannot be resolved
INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in inverse join column cannot be resolved
JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column name must be specified when there are multiples
JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column referenced column name must be specified when there are multiples
JOIN_COLUMN_TABLE_NOT_VALID=Table for join column is not valid
JOIN_COLUMN_UNRESOLVED_NAME=Join column cannot be resolved
JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in join column cannot be resolved
MAP_KEY_COLUMN_TABLE_NOT_VALID=Table for map key column is not valid
MAP_KEY_COLUMN_UNRESOLVED_NAME=Map key column cannot be resolved on table
ORDER_COLUMN_UNRESOLVED_NAME=Order column cannot be resolved
PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column name must be specified when there are multiples
PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column referenced column name must be specified when there are multiples
PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Primary key join column cannot be resolved
PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Primary key join column referenced column cannot be resolved
MAP_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Map key join column name must be specified when there are multiples
MAP_KEY_JOIN_COLUMN_TABLE_NOT_VALID=Table for map key join column is not valid
MAP_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Map key join column referenced column name must be specified when there are multiples
MAP_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Map key join column cannot be resolved
MAP_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in map key join column cannot be resolved

VIRTUAL_ATTRIBUTE_COLUMN_TABLE_NOT_VALID=Table for column not valid
VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME=Column cannot be resolved
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Inverse join column referenced column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Table for inverse join column is not valid
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Inverse join column cannot be resolved
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in inverse join column cannot be resolved
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Join column referenced column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_NAME=Join column cannot be resolved
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_TABLE_NOT_VALID=Table for join column is not valid
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in join column cannot be resolved
VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_TABLE_NOT_VALID=Table for map key column is not valid
VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_UNRESOLVED_NAME=Map key attribute column cannot be resolved on table
VIRTUAL_ATTRIBUTE_ORDER_COLUMN_UNRESOLVED_NAME=Order column cannot be resolved
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column name must be specified when there are multiples
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Primary key join column referenced column name must be specified when there are multiples
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Primary key join column cannot be resolved
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Primary key join column referenced column name cannot be resolved
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_MAP_KEY_JOIN_COLUMNS=Map key join column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_MAP_KEY_JOIN_COLUMNS=Map key join column referenced column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_TABLE_NOT_VALID=Table for map key join column is not valid
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Map key join column cannot be resolved
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Referenced column in map key join column cannot be resolved

### Overrides ###
ASSOCIATION_OVERRIDE_INVALID_NAME=Association override name cannot be resolved to an attribute
ATTRIBUTE_OVERRIDE_INVALID_NAME=Attribute override name cannot be resolved to an attribute
ATTRIBUTE_OVERRIDE_INVALID_TYPE=Attribute override type cannot be resolved to an attribute
ATTRIBUTE_OVERRIDE_DERIVED_AND_SPECIFIED=Attributes (or subattributes of an attribute) mapped by a relationship should not be overridden
VIRTUAL_ASSOCIATION_OVERRIDE_INVALID_NAME=Implied association override name cannot be resolved to an attribute
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=Implied association override inverse join column name must be specified when there are multiples
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=Implied association override inverse join column referenced column name must be specified when there are multiples
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Implied association override table for inverse join column is not valid
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Implied association override inverse join column cannot be resolved
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Implied association override referenced column in inverse join column cannot be resolved
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied association override join column name must be specified when there are multiples
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Implied association override join column referenced column name must be specified when there are multiples
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=Implied association override table for join column is not valid
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=Implied association override join column cannot be resolved
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Implied association override referenced column in join column cannot be resolved
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_CATALOG=Implied association override catalog cannot be resolved for join table
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_NAME=Implied association override join table cannot be resolved
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_SCHEMA=Implied association override schema cannot be resolved for join table
VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Implied attribute override table for column not valid
VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Implied attribute override column cannot be resolved
VIRTUAL_ATTRIBUTE_OVERRIDE_INVALID_NAME=Implied attribute override name cannot be resolved to an attribute
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Implied map key attribute override table for column is not valid
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME=Implied map key attribute override name cannot be resolved to an attribute

VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVALID_NAME=Association override name cannot be resolved to an attribute
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=Association override inverse join column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=Association override inverse join column referenced column name cannot be resolved
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=Association override inverse join column referenced column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Association override table for inverse join column is not valid
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Association override inverse join column cannot be resolved
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Association override join column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Association override join column referenced column name must be specified when there are multiples
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=Association override join column referenced column name cannot be resolved
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=Association override table for join column is not valid
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=Association override join column cannot be resolved
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Attribute override table for column not valid
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Attribute override column cannot be resolved
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_INVALID_NAME=Attribute override name cannot be resolved to an attribute
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=Map key attribute override table for column not valid
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME=Map key attribute override cannot be resolved to an attribute
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Map key attribute override column cannot be resolved on table to an attribute
VIRTUAL_ATTRIBUTE_OVERRIDE_INVALID_TYPE=
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=Column cannot be resolved on table to map key attribute override

### Inheritance ###
DISCRIMINATOR_COLUMN_UNRESOLVED_NAME=Discriminator column cannot be resolved
ENTITY_ABSTRACT_DISCRIMINATOR_VALUE_DEFINED=No discriminator value should be defined for abstract entity
ENTITY_ABSTRACT_TABLE_PER_CLASS_DEFINES_TABLE=No table should be defined for abstract entity using table-per-concrete-class inheritance
ENTITY_NON_ROOT_DISCRIMINATOR_COLUMN_DEFINED=No discriminator column should be defined for non-root entity
ENTITY_SINGLE_TABLE_DESCENDANT_DEFINES_TABLE=No table should be defined for non-root entity using single-table inheritance
ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_COLUMN_DEFINED=No discriminator column should be defined for entity using table-per-concrete-class inheritance
ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_VALUE_DEFINED=No discriminator value should be defined for entity using table-per-concrete-class inheritance
ENTITY_TABLE_PER_CLASS_NOT_PORTABLE_ON_PLATFORM=Entity uses table-per-concrete-class inheritance which is not portable
ENTITY_TABLE_PER_CLASS_NOT_SUPPORTED_ON_PLATFORM=Entity cannot use table-per-concrete-class inheritance

### Generator ###
GENERATOR_DUPLICATE_NAME=Duplicate generator defined
GENERATOR_NAME_UNDEFINED=Generator is unnamed
UNRESOLVED_GENERATOR_NAME=Generator is not defined in the persistence unit

### Query ###
QUERY_DUPLICATE_NAME=Duplicate query defined
QUERY_NAME_UNDEFINED=Query is unnamed
QUERY_STATEMENT_UNDEFINED=Query has no query statement
JPQL_QUERY_VALIDATION=Invalid or incomplete JPQL queries
