################################################################################
# Copyright (c) 2006, 2012 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
################################################################################

#Content is organized based on the categories
#Entries in each categories are listed alphabetically.
#If adding a new entry, please add it to the corresponding category at the right place.
#Messages that have a parameter are listed at the end of the file.

### Project ###
NO_JPA_PROJECT=This project has the JPA facet, but no JPA project could be created. See the error log for more details.
PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS=Multiple persistence units defined - only the first persistence unit will be recognized
PERSISTENCE_NO_PERSISTENCE_UNIT=No persistence unit defined
PERSISTENCE_XML_INVALID_CONTENT=The persistence.xml file does not have recognized content.
PERSISTENCE_XML_UNSUPPORTED_CONTENT=The persistence.xml file does not have supported content for this JPA platform.
PROJECT_INACTIVE_CONNECTION=Connection \"{0}\" is not active. No validation will be done against the data source.
PROJECT_INVALID_CONNECTION=Connection \"{0}\" does not exist. No database-specific validation will be performed.
PROJECT_INVALID_LIBRARY_PROVIDER=The currently selected library provider is invalid.
PROJECT_MULTIPLE_PERSISTENCE_XML=Multiple persistence.xml files in project
PROJECT_NO_CONNECTION=No connection specified for project. No database-specific validation will be performed.
PROJECT_NO_PERSISTENCE_XML=No persistence.xml file found in project
XML_VERSION_NOT_LATEST=A more recent version of this document is supported by this JPA platform


### Persistence Unit ###
MAPPING_FILE_EXTRANEOUS_PERSISTENCE_UNIT_METADATA=Extraneous persistence unit metadata found cross the persistence unit. This metadata may not be used.
PERSISTENCE_UNIT_DUPLICATE_CLASS=Duplicate class \"{0}\"
PERSISTENCE_UNIT_DUPLICATE_JAR_FILE=Duplicate JAR file \"{0}\"
PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE=Duplicate mapping file \"{0}\"
PERSISTENCE_UNIT_NONEXISTENT_CLASS=Class \"{0}\" cannot be resolved
PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE=Mapping file \"{0}\" cannot be resolved.
PERSISTENCE_UNIT_NONEXISTENT_JAR_FILE=JAR file \"{0}\" cannot be resolved
PERSISTENCE_UNIT_INVALID_CLASS=Class \"{0}\" is included in a persistence unit, but is not mapped
PERSISTENCE_UNIT_INVALID_MAPPING_FILE=Mapping file {0} does not have recognized content.
PERSISTENCE_UNIT_JAR_FILE_DEPLOYMENT_PATH_WARNING=The path to the JAR file will vary on your runtime environment. Please make sure the specified path fits your particular environment.
PERSISTENCE_UNIT_REDUNDANT_CLASS=Class \"{0}\" is already specified in mapping file \"{1}\"
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 {0} does not have supported content for this JPA platform.

### Type ###
ENTITY_NAME_DUPLICATED=Duplicate entity name \"{0}\" found in the persistence unit. Entity names must be unique.
ENTITY_NAME_MISSING=The given name of the entity \"{0}\" is empty
ENTITY_NO_PK=The entity has no primary key attribute defined
ENTITY_NON_ROOT_ID_ATTRIBUTE_SPECIFIED=A primary key attribute should only be defined on the root entity or a mapped superclass
ENTITY_NON_ROOT_ID_CLASS_SPECIFIED=An ID class should only be defined on the root entity or a mapped superclass
PERSISTENT_TYPE_ANNOTATED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT=Class \"{0}\" is annotated, but is not included in any persistence unit
PERSISTENT_TYPE_MAPPED_BUT_NOT_INCLUDED_IN_PERSISTENCE_UNIT=Class \"{0}\" is mapped, but is not included in any persistence unit
PERSISTENT_TYPE_DUPLICATE_CLASS=Duplicate class \"{0}\" found in mapping files. This configuration is not supported by the tooling and may result in invalid error messages.
PERSISTENT_TYPE_UNRESOLVED_CLASS=Class \"{0}\" cannot be resolved
PERSISTENT_TYPE_UNSPECIFIED_CLASS=Unspecified class
TARGET_NOT_AN_EMBEDDABLE={0} is not mapped as an embeddable
TYPE_MAPPING_CLASS_MISSING_NO_ARG_CONSTRUCTOR=The java class for mapped type \"{0}\" has no no-arg constructor defined
TYPE_MAPPING_CLASS_PRIVATE_NO_ARG_CONSTRUCTOR=The java class for mapped type \"{0}\" has a private no-arg constructor; it must be public or protected.
TYPE_MAPPING_FINAL_CLASS=The java class for mapped type \"{0}\" is final
TYPE_MAPPING_ID_AND_EMBEDDED_ID_BOTH_USED=This class must use either an ID or an embedded ID to specify its primary key, not both
TYPE_MAPPING_ID_CLASS_AND_EMBEDDED_ID_BOTH_USED=This class must use either an ID class or an embedded ID to specify its composite primary key, not both
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_DOES_NOT_EXIST=The primary key attribute \"{0}\" does not have a matching ID class attribute
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_MAPPING_DUPLICATE_MATCH=Primary key attribute {0} is a duplicate match for ID class
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_MAPPING_NO_MATCH=There is no ID class attribute to match the primary key attribute {0}
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_NO_MATCH=There is no primary key attribute to match the ID class attribute {0}
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_NOT_PRIMARY_KEY=The attribute matching the ID class attribute {0} is not mapped as a primary key
TYPE_MAPPING_ID_CLASS_ATTRIBUTE_TYPE_DOES_NOT_AGREE=The attribute matching the ID class attribute {0} does not have the correct type {1}
TYPE_MAPPING_ID_CLASS_MISSING_EQUALS_METHOD=ID class \"{0}\" does not have a valid equals() method defined
TYPE_MAPPING_ID_CLASS_MISSING_HASHCODE_METHOD=ID class \"{0}\" does not have a valid hashCode() method defined
TYPE_MAPPING_ID_CLASS_MISSING_NO_ARG_CONSTRUCTOR=ID class \"{0}\" has no no-arg constructor defined
TYPE_MAPPING_ID_CLASS_MISSING_PUBLIC_NO_ARG_CONSTRUCTOR=ID class \"{0}\" 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 \"{0}\" does not exist on the project classpath
TYPE_MAPPING_ID_CLASS_NOT_IMPLEMENT_SERIALIZABLE=ID class \"{0}\" must implement \"java.io.Serializable\" interface
TYPE_MAPPING_ID_CLASS_NOT_PUBLIC=ID class \"{0}\" must be public
TYPE_MAPPING_ID_CLASS_PROPERTY_METHOD_NOT_PUBLIC=The property method \"{1}\" of ID class \"{0}\" must be public
TYPE_MAPPING_ID_CLASS_REDEFINED=An ancestor of this class has already defined the ID class. The ID class may not be defined here.
TYPE_MAPPING_ID_CLASS_REQUIRED=This class has a composite primary key. It must use an ID class.
TYPE_MAPPING_ID_CLASS_WITH_MAPS_ID=The relationship ''{0}'' maps an ID, which is not allowed in conjunction with an ID class.
TYPE_MAPPING_MAPS_ID_ATTRIBUTE_TYPE_DOES_NOT_AGREE=The type of the ID mapped by the relationship ''{0}'' does not agree with the primary key class of the target entity.
TYPE_MAPPING_MEMBER_CLASS=The java class for mapped type \"{0}\" is a member class 
TYPE_MAPPING_MULTIPLE_EMBEDDED_ID=This class uses multiple embedded ID mappings. Only one is allowed.
TYPE_MAPPING_PK_REDEFINED_ID_ATTRIBUTE=An ancestor of this class has already defined the primary key. Primary key attributes may not be defined here.
TYPE_MAPPING_PK_REDEFINED_ID_CLASS=An ancestor of this class has already defined the primary key. The ID class may not be defined here.

### Attributes ###
MAP_KEY_CLASS_NOT_DEFINED=Map key class is not defined
MAP_KEY_CLASS_NOT_EXIST=Map key class \"{0}\" does not exist
MAP_KEY_CLASS_MUST_BE_ENTITY_EMBEDDABLE_OR_BASIC_TYPE=Map key class \"{0}\" is not an entity, embeddable or basic type
ELEMENT_COLLECTION_TARGET_CLASS_DOES_NOT_EXIST=Target class \"{0}\" does not exist
ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=Target class \"{0}\" is not an embeddable or basic type
ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=Target class is not defined
ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_ELEMENT_COLLECTION_MAPPING=Mapping contains an embeddable \"{0}\" with a prohibited mapping \"{1}\", element collections may not contain embeddables with element collection mappings
ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_PROHIBITED_RELATIONSHIP_MAPPING=Mapping contains an embeddable \"{0}\" with a prohibited mapping \"{1}\", embeddables in element collections may only contain many-to-one or one-to-one mappings which must be on the \"owning\" side of the relationship and must not use join table 
EMBEDDED_ID_CLASS_SHOULD_BE_PUBLIC=Embedded ID class should be public
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_NO_ARG_CONSTRUCTOR=Embedded ID class should include a zero argument constructor
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_EQUALS_HASHCODE=Embedded ID class should include method definitions for equals() and hashcode()
EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_SERIALIZABLE=Embedded ID class should implement java.io.Serializable
EMBEDDED_ID_CLASS_SHOULD_NOT_CONTAIN_RELATIONSHIP_MAPPINGS=Embedded ID class 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=In {0}, a column is specified, but it is mapped by a relationship. IDs that are mapped by a relationship should not specify a column.
MAPS_ID_VALUE_INVALID=In {0}, the "maps ID" value ''{1}'' does not refer to an attribute that is used as an ID for this entity
MAPS_ID_VALUE_NOT_RESOLVED=In {0}, the "maps ID" value ''{1}'' could not be resolved to an attribute on this entity or this entity''s embedded ID
MAPS_ID_VALUE_NOT_SPECIFIED=In {0}, the "maps ID" value is not specified and could not be determined from defaults
MAPPING_INVALID_MAPPED_BY=In {0}, the "mapped by" attribute ''{1}'' has an invalid mapping type for this relationship.
MAPPING_MAPPED_BY_ON_BOTH_SIDES=In {0}, the "mapped by" attribute ''{1}'' also maps this attribute. Every relationship must have an owner.
MAPPING_UNRESOLVED_MAPPED_BY=In {0}, the "mapped by" value ''{1}'' cannot be resolved to an attribute on the target entity.
ORDER_COLUMN_AND_ORDER_BY_BOTH_SPECIFIED=Attribute \"{0}\" specifies both OrderColumn and OrderBy annotations
PERSISTENT_ATTRIBUTE_ELEMENT_COLLECTION_INVALID_VALUE_TYPE=The element collection value for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
PERSISTENT_ATTRIBUTE_INVALID_TEMPORAL_MAP_KEY_TYPE=The map key for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
PERSISTENT_ATTRIBUTE_FINAL_FIELD=The java field for attribute \"{0}\" is final
PERSISTENT_ATTRIBUTE_FINAL_GETTER=The get method for attribute \"{0}\" is final
PERSISTENT_ATTRIBUTE_FINAL_SETTER=The set method for attribute \"{0}\" is final
PERSISTENT_ATTRIBUTE_INHERITED_ATTRIBUTES_NOT_SUPPORTED=Attribute \"{0}\" is inherited; referring to inherited attributes in the orm.xml may not be supported by all persistence providers
PERSISTENT_ATTRIBUTE_INVALID_MAPPING=Attribute \"{0}\" has invalid mapping type in this context
PERSISTENT_ATTRIBUTE_INVALID_TEMPORAL_MAPPING_TYPE=The persistent field or property for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
PERSISTENT_ATTRIBUTE_INVALID_VERSION_MAPPING_TYPE=The persistent field or property for a Version mapping must be of type int, Integer, short, Short, long, Long or Timestamp to ensure application portability
PERSISTENT_ATTRIBUTE_PUBLIC_FIELD=The java field for attribute \"{0}\" is public
PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME=Attribute \"{0}\" in class \"{1}\" cannot be resolved
PERSISTENT_ATTRIBUTE_UNSPECIFIED_NAME=Unspecified name
TARGET_ENTITY_IS_NOT_AN_ENTITY=Target entity \"{0}\" is not an Entity
TARGET_ENTITY_NOT_DEFINED=Target entity is not defined
TARGET_ENTITY_NOT_EXIST=Target entity \"{0}\" does not exist
ATTRIBUTE_TYPE_IS_NOT_SUPPORTED_COLLECTION_TYPE=The attribute type for a collection mapping must be java.util.Collection, java.util.Set, java.util.List or java.util.Map
VIRTUAL_ATTRIBUTE_MAP_KEY_CLASS_NOT_DEFINED=In implied attribute \"{0}\", map key class is not defined
VIRTUAL_ATTRIBUTE_MAP_KEY_CLASS_MUST_BE_ENTITY_EMBEDDABLE_OR_BASIC_TYPE=In implied attribute \"{0}\", map key class  \"{1}\" is not an entity, embeddable or basic type
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_DOES_NOT_EXIST="In implied attribute \"{0}\", target class does not exist on the classpath"
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_ELEMENT_COLLECTION_MAPPING=In implied attribute \"{0}"\, mapping contains an embeddable \"{1}\" with a prohibited mapping \"{2}\", element collections may not contain embeddables with element collection mappings
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_CONTAINS_EMBEDDABLE_WITH_PROHIBITED_RELATIONSHIP_MAPPING=In implied attribute \"{0}"\, mapping contains an embeddable \"{1}\" with a prohibited mapping \"{2}\", embeddables in element collections may only contain many-to-one or one-to-one mappings which must be on the \"owning\" side of the relationship and not use a join table
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_MUST_BE_EMBEDDABLE_OR_BASIC_TYPE=In implied attribute \"{0}\", target class \"{1}\" is not an embeddable or basic type
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_TARGET_CLASS_NOT_DEFINED=In implied attribute \"{0}\", target class is not defined
VIRTUAL_ATTRIBUTE_TARGET_ENTITY_IS_NOT_AN_ENTITY=In implied attribute \"{0}\", target entity \"{1}\" is not an Entity
VIRTUAL_ATTRIBUTE_TARGET_ENTITY_NOT_DEFINED=In implied attribute \"{0}\", target entity is not defined
VIRTUAL_ATTRIBUTE_INVALID_TEMPORAL_MAP_KEY_TYPE=In implied attribute \"{0}\", the map key for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
VIRTUAL_ATTRIBUTE_ELEMENT_COLLECTION_INVALID_VALUE_TYPE=In implied attribute \"{0}\", the element collection value for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
VIRTUAL_ATTRIBUTE_INVALID_TEMPORAL_MAPPING_TYPE=In implied attribute \"{0}\", the persistent field or property for a Temporal type must be of type java.util.Date, java.util.Calendar or java.util.GregorianCalendar
VIRTUAL_ATTRIBUTE_ATTRIBUTE_TYPE_IS_NOT_SUPPORTED_COLLECTION_TYPE=In implied attribute \"{0}\", the attribute type for a collection mapping must be java.util.Collection, java.util.Set, java.util.List or java.util.Map
VIRTUAL_ATTRIBUTE_TARGET_NOT_AN_EMBEDDABLE=In implied attribute \"{0}\", \"{1}\" is not mapped as an embeddable
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_BE_PUBLIC=In implied attribute \"{0}\", embedded ID class should be public
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_NO_ARG_CONSTRUCTOR=In implied attribute \"{0}\", embedded ID class should include a zero argument constructor
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_EQUALS_HASHCODE=In implied attribute \"{0}\", embedded ID class should include method definitions for equals() and hashcode()
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_IMPLEMENT_SERIALIZABLE=In implied attribute \"{0}\", embedded ID class should implement java.io.Serializable
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_CLASS_SHOULD_NOT_CONTAIN_RELATIONSHIP_MAPPINGS=In implied attribute \"{0}\", embedded ID class should not contain relationship mappings
VIRTUAL_ATTRIBUTE_EMBEDDED_ID_MAPPING_MAPPED_BY_RELATIONSHIP_AND_ATTRIBUTE_OVERRIDES_SPECIFIED=In implied attribute \"{0}\", embedded IDs that are mapped by a relationship should not specify any attribute overrides

### Table ###
COLLECTION_TABLE_UNRESOLVED_CATALOG = Catalog \"{0}\" cannot be resolved for collection table \"{1}\"
COLLECTION_TABLE_UNRESOLVED_NAME = Collection table \"{0}\" cannot be resolved
COLLECTION_TABLE_UNRESOLVED_SCHEMA = Schema \"{0}\" cannot be resolved for collection table \"{1}\"
JOIN_TABLE_UNRESOLVED_CATALOG=Catalog \"{0}\" cannot be resolved for join table \"{1}\"
JOIN_TABLE_UNRESOLVED_NAME=Join table \"{0}\" cannot be resolved
JOIN_TABLE_UNRESOLVED_SCHEMA=Schema \"{0}\" cannot be resolved for join table \"{1}\"
SECONDARY_TABLE_UNRESOLVED_CATALOG=Catalog \"{0}\" cannot be resolved for secondary table \"{1}\"
SECONDARY_TABLE_UNRESOLVED_NAME=Secondary table \"{0}\" cannot be resolved
SECONDARY_TABLE_UNRESOLVED_SCHEMA=Schema \"{0}\" cannot be resolved for secondary table \"{1}\"
TABLE_UNRESOLVED_CATALOG=Catalog \"{0}\" cannot be resolved for table \"{1}\"
TABLE_UNRESOLVED_NAME=Table \"{0}\" cannot be resolved
TABLE_UNRESOLVED_SCHEMA=Schema \"{0}\" cannot be resolved for table \"{1}\"
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_CATALOG = In implied attribute \"{0}\", catalog \"{1}\" cannot be resolved for collection table \"{2}\"
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_NAME = In implied attribute \"{0}\", collection table \"{1}\" cannot be resolved
VIRTUAL_ATTRIBUTE_COLLECTION_TABLE_UNRESOLVED_SCHEMA = In implied attribute \"{0}\", schema \"{1}\" cannot be resolved for collection table \"{2}\"
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_CATALOG=In implied attribute \"{0}\", catalog \"{1}\" cannot be resolved for join table \"{2}\"
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME=In implied attribute \"{0}\", join table \"{1}\" cannot be resolved
VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA=In implied attribute \"{0}\", schema \"{1}\" cannot be resolved for join table \"{2}\"
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied secondary table \"{0}\", name must be specified when there are multiple primary key join columns
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied secondary table \"{0}\", referenced column name must be specified when there are multiple primary key join columns
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=In implied secondary table \"{0}\", primary key join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_SECONDARY_TABLE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied secondary table \"{0}\", primary key join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"

### Column ###
COLUMN_UNRESOLVED_NAME=Column \"{0}\" cannot be resolved on table \"{1}\"
COLUMN_UNRESOLVED_TABLE=Table \"{0}\" for column \"{1}\" cannot be resolved
INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Name must be specified when there are multiple inverse join columns
INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Referenced column name must be specified when there are multiple inverse join columns
INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=Inverse join column \"{0}\" cannot be resolved on table \"{1}\"
INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Inverse join column referenced column name \"{0}\" cannot be resolved on table \"{1}\"
JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Name must be specified when there are multiple join columns
JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Referenced column name must be specified when there are multiple join columns
JOIN_COLUMN_UNRESOLVED_NAME=Join column \"{0}\" cannot be resolved on table \"{1}\"
JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Join column referenced column name \"{0}\" cannot be resolved on table \"{1}\"
MAP_KEY_COLUMN_UNRESOLVED_NAME = Map key column \"{0}\" cannot be resolved on table \"{1}\"
ORDER_COLUMN_UNRESOLVED_NAME=Order column \"{0}\" cannot be resolved on table \"{1}\"
PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Name must be specified when there are multiple primary key join columns
PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Referenced column name must be specified when there are multiple primary key join columns
PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Primary key join column \"{0}\" cannot be resolved on table \"{1}\"
PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Primary key join column referenced column name \"{0}\" cannot be resolved on table \"{1}\"
MAP_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS =Name must be specified when there are multiple map key join columns
MAP_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=Referenced column name must be specified when there are multiple map key join columns
MAP_KEY_JOIN_COLUMN_UNRESOLVED_NAME=Map key join column \"{0}\" cannot be resolved on table \"{1}\"
MAP_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=Map key join column referenced column name \"{0}\" cannot be resolved on table \"{1}\"

VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", name must be specified when there are multiple inverse join columns
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", referenced column name must be specified when there are multiple inverse join columns
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", inverse join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied attribute \"{0}\", inverse join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", name must be specified when there are multiple join columns
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", referenced column name must be specified when there are multiple join columns
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied attribute \"{0}\", join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_UNRESOLVED_NAME = In implied attribute \"{0}\", map key column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_ORDER_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", order column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", primary key join column name must be specified when there are multiple primary key join columns
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", primary key join column referenced column name must be specified when there are multiple primary key join columns
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", primary key join column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied attribute \"{0}\", primary key join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied primary key join column, name must be specified when there are multiple primary key join columns
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied primary key join column, referenced column name must be specified when there are multiple primary key join columns
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_NAME=In implied primary key join column, name \"{0}\" cannot be resolved on table \"{1}\"
VIRTUAL_PRIMARY_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied primary key join column, referenced column name \"{0}\" cannot be resolved on table \"{1}\"
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_MAP_KEY_JOIN_COLUMNS=In implied attribute \"{0}\", name must be specified when there are multiple map key join columns
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_MAP_KEY_JOIN_COLUMNS=In implied attribute \"{0}\", referenced column name must be specified when there are multiple map key join columns
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", map key join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied attribute \"{0}\", map key join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"

### Overrides ###
ATTRIBUTE_OVERRIDE_INVALID_TYPE=Persistent type of override attribute \"{0}\" cannot be resolved
ATTRIBUTE_OVERRIDE_DERIVED_AND_SPECIFIED=An ID attribute derived from a relationship mapping cannot be overridden.
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=In implied association override \"{0}\", name must be specified when there are multiple inverse join columns
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=In implied association override \"{0}\", referenced column name must be specified when there are multiple inverse join columns
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=In implied association override \"{0}\", inverse join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied association override \"{0}\", inverse join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied association override \"{0}\", name must be specified when there are multiple join columns
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied association override \"{0}\", referenced column name must be specified when there are multiple join columns
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=In implied association override \"{0}\", join column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_REFERENCED_COLUMN_NAME=In implied association override \"{0}\", join column referenced column name \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_CATALOG=In implied association override \"{0}\", join table catalog \"{1}\" cannot be resolved 
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_NAME=In implied association override \"{0}\", join table \"{1}\" cannot be resolved 
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_TABLE_UNRESOLVED_SCHEMA=In implied association override \"{0}\", join table schema \"{1}\" cannot be resolved 
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", association override \"{1}\", name must be specified when there are multiple join columns
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_JOIN_COLUMNS=In implied attribute \"{0}\", association override \"{1}\", referenced column name must be specified when there are multiple join columns
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", association override \"{1}\", join column \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", association override \"{1}\", join column referenced column name \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=In implied attribute \"{0}\", association override \"{1}\", name must be specified when there are multiple inverse join columns
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_NAME_MUST_BE_SPECIFIED_MULTIPLE_INVERSE_JOIN_COLUMNS=In implied attribute \"{0}\", association override \"{1}\", referenced column name must be specified when there are multiple inverse join columns
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", association override \"{1}\", inverse join column \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", association override \"{1}\", inverse join column referenced column name \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", attribute override \"{1}\", column \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=In implied attribute \"{0}\", map key attribute override \"{1}\", column \"{2}\" cannot be resolved on table \"{3}\"
VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=In implied attribute override \"{0}\", column \"{1}\" cannot be resolved on table \"{2}\"
VIRTUAL_ATTRIBUTE_OVERRIDE_INVALID_TYPE=Persistent type of implied override attribute \"{0}\" cannot be resolved
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME=In implied map key attribute override \"{0}\", column \"{1}\" cannot be resolved on table \"{2}\"

### Inheritance ###
DISCRIMINATOR_COLUMN_UNRESOLVED_NAME=Discriminator column \"{0}\" cannot be resolved on table \"{1}\"
ENTITY_ABSTRACT_DISCRIMINATOR_VALUE_DEFINED=No discriminator value should be defined for abstract entity \"{0}\"
ENTITY_ABSTRACT_TABLE_PER_CLASS_DEFINES_TABLE=No table should be defined for abstract entity \"{0}\" using table-per-concrete-class inheritance
ENTITY_NON_ROOT_DISCRIMINATOR_COLUMN_DEFINED=No discriminator column should be defined for non-root entity \"{0}\"
ENTITY_SINGLE_TABLE_DESCENDANT_DEFINES_TABLE=No table should be defined for non-root entity \"{0}\" using single-table inheritance
ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_COLUMN_DEFINED=No discriminator column should be defined for entity \"{0}\" using table-per-concrete-class inheritance
ENTITY_TABLE_PER_CLASS_DISCRIMINATOR_VALUE_DEFINED=No discriminator value should be defined for entity \"{0}\" using table-per-concrete-class inheritance
ENTITY_TABLE_PER_CLASS_NOT_PORTABLE_ON_PLATFORM=Entity \"{0}\" uses table-per-concrete-class inheritance which is not portable and may not be supported by the JPA provider
ENTITY_TABLE_PER_CLASS_NOT_SUPPORTED_ON_PLATFORM=Entity \"{0}\" cannot use table-per-concrete-class inheritance because the chosen JPA platform does not support it

### Generator ###
GENERATOR_DUPLICATE_NAME=Duplicate generator named \"{0}\" defined in this persistence unit
GENERATOR_NAME_UNDEFINED=Generator is unnamed. All generators require a name.
ID_MAPPING_UNRESOLVED_GENERATOR_NAME=No generator named \"{0}\" is defined in the persistence unit

### Query ###
QUERY_DUPLICATE_NAME=Duplicate query named \"{0}\" defined in this persistence unit
QUERY_NAME_UNDEFINED=Query is unnamed. All queries require a name.
QUERY_STATEMENT_UNDEFINED=Query \"{0}\" has no query statement. All queries require a query statement.

#These messages have a parameter at the end which is used to plugin a different description.
#The possible message endings are found in jpa_validation_description.properties.
ASSOCIATION_OVERRIDE_INVALID_NAME=Association override \"{0}\" cannot be resolved to an attribute {1} \"{2}\"
ATTRIBUTE_OVERRIDE_INVALID_NAME=Attribute override \"{0}\" cannot be resolved to an attribute {1} \"{2}\"
COLUMN_TABLE_NOT_VALID=Table \"{0}\" for column \"{1}\" {2}
INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=Table \"{0}\" for inverse join column \"{1}\" {2}
JOIN_COLUMN_TABLE_NOT_VALID=Table \"{0}\" for join column \"{1}\" {2}
MAP_KEY_COLUMN_TABLE_NOT_VALID=Table \"{0}\" for map key column \"{1}\" {2}
MAP_KEY_JOIN_COLUMN_TABLE_NOT_VALID=Table \"{0}\" for map key join column \"{1}\" {2}
VIRTUAL_ASSOCIATION_OVERRIDE_INVALID_NAME=Implied association override \"{0}\" cannot be resolved to an attribute {1} \"{2}\"
VIRTUAL_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=In implied association override \"{0}\", table \"{1}\" for inverse join column \"{2}\" {3}
VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=In implied association override \"{0}\", table \"{1}\" for join column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVALID_NAME=In implied attribute \"{0}\", association override \"{1}\" cannot be resolved to an attribute {2} \"{3}\" 
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", association override \"{1}\", table \"{2}\" for inverse join column \"{3}\" {4}
VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_JOIN_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", association override \"{1}\", table \"{2}\" for join column \"{3}\" {4}
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", attribute override \"{1}\", table \"{2}\" for column \"{3}\" {4}
VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_INVALID_NAME=In implied attribute \"{0}\", attribute override \"{1}\" cannot be resolved to an attribute {2} \"{3}\" 
VIRTUAL_ATTRIBUTE_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", table \"{1}\" for column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_INVERSE_JOIN_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", table \"{1}\" for inverse join column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_JOIN_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", table \"{1}\" for join column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", map key attribute override \"{1}\", table \"{2}\" for column \"{3}\" {4}
VIRTUAL_ATTRIBUTE_MAP_KEY_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", table \"{1}\" for map key column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_MAP_KEY_JOIN_COLUMN_TABLE_NOT_VALID=In implied attribute \"{0}\", table \"{1}\" for map key join column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME=In implied attribute \"{0}\", map key attribute override \"{1}\" cannot be resolved to an attribute {2} \"{3}\" 
VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=In implied attribute override \"{0}\", table \"{1}\" for column \"{2}\" {3}
VIRTUAL_ATTRIBUTE_OVERRIDE_INVALID_NAME=Implied attribute override \"{0}\" cannot be resolved to an attribute {1} \"{2}\"
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_COLUMN_TABLE_NOT_VALID=In implied map key attribute override \"{0}\", table \"{1}\" for column \"{2}\" {3}
VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME=Implied map key attribute override \"{0}\" cannot be resolved to an attribute {1} \"{2}\"

