diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/util/xml/JpaNamespaceTransformingEventReader.java b/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/util/xml/JpaNamespaceTransformingEventReader.java index a51dd090dc..763adb0ddf 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/util/xml/JpaNamespaceTransformingEventReader.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/util/xml/JpaNamespaceTransformingEventReader.java @@ -30,11 +30,12 @@ import javax.xml.stream.util.EventReaderDelegate; */ public class JpaNamespaceTransformingEventReader extends EventReaderDelegate { private static final String VERSION_ATTRIBUTE_NAME = "version"; - private static final String DEFAULT_VERSION = "2.1"; + private static final String DEFAULT_PERSISTENCE_VERSION = "3.0"; + private static final String DEFAULT_ORM_VERSION = "3.1"; - private static final String DEFAULT_PERSISTENCE_NAMESPACE = "http://xmlns.jcp.org/xml/ns/persistence"; - private static final String DEFAULT_ORM_NAMESPACE = "http://xmlns.jcp.org/xml/ns/persistence/orm"; - private static final Map NAMESPACE_MAPPING = new HashMap( 2 ); + private static final String DEFAULT_PERSISTENCE_NAMESPACE = "https://jakarta.ee/xml/ns/persistence"; + private static final String DEFAULT_ORM_NAMESPACE = "https://jakarta.ee/xml/ns/persistence/orm"; + private static final Map NAMESPACE_MAPPING = new HashMap( 8 ); static { NAMESPACE_MAPPING.put( @@ -45,6 +46,30 @@ public class JpaNamespaceTransformingEventReader extends EventReaderDelegate { "http://java.sun.com/xml/ns/persistence/orm", DEFAULT_ORM_NAMESPACE ); + NAMESPACE_MAPPING.put( + "http://xmlns.jcp.org/xml/ns/persistence", + DEFAULT_PERSISTENCE_NAMESPACE + ); + NAMESPACE_MAPPING.put( + "http://xmlns.jcp.org/xml/ns/persistence/orm", + DEFAULT_ORM_NAMESPACE + ); + NAMESPACE_MAPPING.put( + "https://java.sun.com/xml/ns/persistence", + DEFAULT_PERSISTENCE_NAMESPACE + ); + NAMESPACE_MAPPING.put( + "https://java.sun.com/xml/ns/persistence/orm", + DEFAULT_ORM_NAMESPACE + ); + NAMESPACE_MAPPING.put( + "https://xmlns.jcp.org/xml/ns/persistence", + DEFAULT_PERSISTENCE_NAMESPACE + ); + NAMESPACE_MAPPING.put( + "https://xmlns.jcp.org/xml/ns/persistence/orm", + DEFAULT_ORM_NAMESPACE + ); } private static final Map START_ELEMENT_TO_NAMESPACE_URI = new HashMap( 2 ); @@ -133,13 +158,25 @@ public class JpaNamespaceTransformingEventReader extends EventReaderDelegate { while ( existingAttributesIterator.hasNext() ) { Attribute attribute = (Attribute) existingAttributesIterator.next(); if ( VERSION_ATTRIBUTE_NAME.equals( attribute.getName().getLocalPart() ) ) { - if ( !DEFAULT_VERSION.equals( attribute.getName().getPrefix() ) ) { - newElementAttributeList.add( - xmlEventFactory.createAttribute( - attribute.getName(), - DEFAULT_VERSION - ) - ); + if ( currentDocumentNamespaceUri.equals( DEFAULT_PERSISTENCE_NAMESPACE ) ) { + if ( !DEFAULT_PERSISTENCE_VERSION.equals( attribute.getName().getPrefix() ) ) { + newElementAttributeList.add( + xmlEventFactory.createAttribute( + attribute.getName(), + DEFAULT_PERSISTENCE_VERSION + ) + ); + } + } + else { + if ( !DEFAULT_ORM_VERSION.equals( attribute.getName().getPrefix() ) ) { + newElementAttributeList.add( + xmlEventFactory.createAttribute( + attribute.getName(), + DEFAULT_ORM_VERSION + ) + ); + } } } else { diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/xml/JpaDescriptorParser.java b/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/xml/JpaDescriptorParser.java index 306755ffef..92ef92b30f 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/xml/JpaDescriptorParser.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/xml/JpaDescriptorParser.java @@ -47,8 +47,8 @@ public class JpaDescriptorParser { private static final String DEFAULT_ORM_XML_LOCATION = "/META-INF/orm.xml"; private static final String SERIALIZATION_FILE_NAME = "Hibernate-Static-Metamodel-Generator.tmp"; - private static final String PERSISTENCE_SCHEMA = "persistence_2_1.xsd"; - private static final String ORM_SCHEMA = "orm_2_1.xsd"; + private static final String PERSISTENCE_SCHEMA = "persistence_3_0.xsd"; + private static final String ORM_SCHEMA = "orm_3_1.xsd"; private final Context context; private final List entityMappings; diff --git a/tooling/metamodel-generator/src/main/xsd/orm_2_1.xsd b/tooling/metamodel-generator/src/main/xsd/orm_2_1.xsd deleted file mode 100644 index bfe68f8ccf..0000000000 --- a/tooling/metamodel-generator/src/main/xsd/orm_2_1.xsd +++ /dev/null @@ -1,2301 +0,0 @@ - - - - - - - - @(#)orm_2_1.xsd 2.1 February 4 2013 - - - - - - ... - - - - ]]> - - - - - - - - - - - - - - - - - - The entity-mappings element is the root element of a mapping - file. It contains the following four types of elements: - - 1. The persistence-unit-metadata element contains metadata - for the entire persistence unit. It is undefined if this element - occurs in multiple mapping files within the same persistence unit. - - 2. The package, schema, catalog and access elements apply to all of - the entity, mapped-superclass and embeddable elements defined in - the same file in which they occur. - - 3. The sequence-generator, table-generator, converter, named-query, - named-native-query, named-stored-procedure-query, and - sql-result-set-mapping elements are global to the persistence - unit. It is undefined to have more than one sequence-generator - or table-generator of the same name in the same or different - mapping files in a persistence unit. It is undefined to have - more than one named-query, named-native-query, sql-result-set-mapping, - or named-stored-procedure-query of the same name in the same - or different mapping files in a persistence unit. It is also - undefined to have more than one converter for the same target - type in the same or different mapping files in a persistence unit. - - 4. The entity, mapped-superclass and embeddable elements each define - the mapping information for a managed persistent class. The mapping - information contained in these elements may be complete or it may - be partial. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Metadata that applies to the persistence unit and not just to - the mapping file in which it is contained. - - If the xml-mapping-metadata-complete element is specified, - the complete set of mapping metadata for the persistence unit - is contained in the XML mapping files for the persistence unit. - - - - - - - - - - - - - - - - - These defaults are applied to the persistence unit as a whole - unless they are overridden by local annotation or XML - element settings. - - schema - Used as the schema for all tables, secondary tables, join - tables, collection tables, sequence generators, and table - generators that apply to the persistence unit - catalog - Used as the catalog for all tables, secondary tables, join - tables, collection tables, sequence generators, and table - generators that apply to the persistence unit - delimited-identifiers - Used to treat database identifiers as - delimited identifiers. - access - Used as the access type for all managed classes in - the persistence unit - cascade-persist - Adds cascade-persist to the set of cascade options - in all entity relationships of the persistence unit - entity-listeners - List of default entity listeners to be invoked - on each entity in the persistence unit. - - - - - - - - - - - - - - - - - - - - Defines the settings and mappings for an entity. Is allowed to be - sparsely populated and used in conjunction with the annotations. - Alternatively, the metadata-complete attribute can be used to - indicate that no annotations on the entity class (and its fields - or properties) are to be processed. If this is the case then - the defaulting rules for the entity and its subelements will - be recursively applied. - - @Target(TYPE) @Retention(RUNTIME) - public @interface Entity { - String name() default ""; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This element determines how the persistence provider accesses the - state of an entity or embedded object. - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface AssociationOverride { - String name(); - JoinColumn[] joinColumns() default{}; - JoinTable joinTable() default @JoinTable; - } - - - - - - - - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface AttributeOverride { - String name(); - Column column(); - } - - - - - - - - - - - - - - - - - This element contains the entity field or property mappings. - It may be sparsely populated to include only a subset of the - fields or properties. If metadata-complete for the entity is true - then the remainder of the attributes will be defaulted according - to the default rules. - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Basic { - FetchType fetch() default EAGER; - boolean optional() default true; - } - - - - - - - - - - - - - - - - - - - - - - - - - public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH}; - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface CollectionTable { - String name() default ""; - String catalog() default ""; - String schema() default ""; - JoinColumn[] joinColumns() default {}; - UniqueConstraint[] uniqueConstraints() default {}; - Index[] indexes() default {}; - } - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Column { - String name() default ""; - boolean unique() default false; - boolean nullable() default true; - boolean insertable() default true; - boolean updatable() default true; - String columnDefinition() default ""; - String table() default ""; - int length() default 255; - int precision() default 0; // decimal precision - int scale() default 0; // decimal scale - } - - - - - - - - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface ColumnResult { - String name(); - Class type() default void.class; - } - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface ConstructorResult { - Class targetClass(); - ColumnResult[] columns(); - } - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface Convert { - Class converter() default void.class; - String attributeName() default ""; - boolean disableConversion() default false; - } - - - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface Converter { - boolean autoApply() default false; - } - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface DiscriminatorColumn { - String name() default "DTYPE"; - DiscriminatorType discriminatorType() default STRING; - String columnDefinition() default ""; - int length() default 31; - } - - - - - - - - - - - - - - - - public enum DiscriminatorType { STRING, CHAR, INTEGER }; - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface DiscriminatorValue { - String value(); - } - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface ElementCollection { - Class targetClass() default void.class; - FetchType fetch() default LAZY; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Defines the settings and mappings for embeddable objects. Is - allowed to be sparsely populated and used in conjunction with - the annotations. Alternatively, the metadata-complete attribute - can be used to indicate that no annotations are to be processed - in the class. If this is the case then the defaulting rules will - be recursively applied. - - @Target({TYPE}) @Retention(RUNTIME) - public @interface Embeddable {} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Embedded {} - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface EmbeddedId {} - - - - - - - - - - - - - - - - - Defines an entity listener to be invoked at lifecycle events - for the entities that list this listener. - - - - - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface EntityListeners { - Class[] value(); - } - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface EntityResult { - Class entityClass(); - FieldResult[] fields() default {}; - String discriminatorColumn() default ""; - } - - - - - - - - - - - - - - - - - public enum EnumType { - ORDINAL, - STRING - } - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Enumerated { - EnumType value() default ORDINAL; - } - - - - - - - - - - - - - public enum FetchType { LAZY, EAGER }; - - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface FieldResult { - String name(); - String column(); - } - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface ForeignKey { - String name() default ""; - String foreign-key-definition() default ""; - boolean disable-foreign-key() default false; - } - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface GeneratedValue { - GenerationType strategy() default AUTO; - String generator() default ""; - } - - - - - - - - - - - - - - public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO }; - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Id {} - - - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface IdClass { - Class value(); - } - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface Index { - String name() default ""; - String columnList(); - boolean unique() default false; - } - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface Inheritance { - InheritanceType strategy() default SINGLE_TABLE; - } - - - - - - - - - - - - - public enum InheritanceType - { SINGLE_TABLE, JOINED, TABLE_PER_CLASS}; - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface JoinColumn { - String name() default ""; - String referencedColumnName() default ""; - boolean unique() default false; - boolean nullable() default true; - boolean insertable() default true; - boolean updatable() default true; - String columnDefinition() default ""; - String table() default ""; - ForeignKey foreignKey() default @ForeignKey(); - } - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface JoinTable { - String name() default ""; - String catalog() default ""; - String schema() default ""; - JoinColumn[] joinColumns() default {}; - JoinColumn[] inverseJoinColumns() default {}; - UniqueConstraint[] uniqueConstraints() default {}; - Index[] indexes() default {}; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Lob {} - - - - - - - - - - - - public enum LockModeType { READ, WRITE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT, NONE}; - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface ManyToMany { - Class targetEntity() default void.class; - CascadeType[] cascade() default {}; - FetchType fetch() default LAZY; - String mappedBy() default ""; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface ManyToOne { - Class targetEntity() default void.class; - CascadeType[] cascade() default {}; - FetchType fetch() default EAGER; - boolean optional() default true; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface MapKey { - String name() default ""; - } - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface MapKeyClass { - Class value(); - } - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface MapKeyColumn { - String name() default ""; - boolean unique() default false; - boolean nullable() default false; - boolean insertable() default true; - boolean updatable() default true; - String columnDefinition() default ""; - String table() default ""; - int length() default 255; - int precision() default 0; // decimal precision - int scale() default 0; // decimal scale - } - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface MapKeyJoinColumn { - String name() default ""; - String referencedColumnName() default ""; - boolean unique() default false; - boolean nullable() default false; - boolean insertable() default true; - boolean updatable() default true; - String columnDefinition() default ""; - String table() default ""; - } - - - - - - - - - - - - - - - - - - - - - Defines the settings and mappings for a mapped superclass. Is - allowed to be sparsely populated and used in conjunction with - the annotations. Alternatively, the metadata-complete attribute - can be used to indicate that no annotations are to be processed - If this is the case then the defaulting rules will be recursively - applied. - - @Target(TYPE) @Retention(RUNTIME) - public @interface MappedSuperclass{} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface NamedAttributeNode { - String value(); - String subgraph() default ""; - String keySubgraph() default ""; - } - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface NamedEntityGraph { - String name() default ""; - NamedAttributeNode[] attributeNodes() default {}; - boolean includeAllAttributes() default false; - NamedSubgraph[] subgraphs() default {}; - NamedSubGraph[] subclassSubgraphs() default {}; - } - - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface NamedNativeQuery { - String name(); - String query(); - QueryHint[] hints() default {}; - Class resultClass() default void.class; - String resultSetMapping() default ""; //named SqlResultSetMapping - } - - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface NamedQuery { - String name(); - String query(); - LockModeType lockMode() default NONE; - QueryHint[] hints() default {}; - } - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface NamedStoredProcedureQuery { - String name(); - String procedureName(); - StoredProcedureParameter[] parameters() default {}; - Class[] resultClasses() default {}; - String[] resultSetMappings() default{}; - QueryHint[] hints() default {}; - } - - - - - - - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface NamedSubgraph { - String name(); - Class type() default void.class; - NamedAttributeNode[] attributeNodes(); - } - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface OneToMany { - Class targetEntity() default void.class; - CascadeType[] cascade() default {}; - FetchType fetch() default LAZY; - String mappedBy() default ""; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface OneToOne { - Class targetEntity() default void.class; - CascadeType[] cascade() default {}; - FetchType fetch() default EAGER; - boolean optional() default true; - String mappedBy() default ""; - boolean orphanRemoval() default false; - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface OrderBy { - String value() default ""; - } - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface OrderColumn { - String name() default ""; - boolean nullable() default true; - boolean insertable() default true; - boolean updatable() default true; - String columnDefinition() default ""; - } - - - - - - - - - - - - - - - - - public enum ParameterMode { IN, INOUT, OUT, REF_CURSOR}; - - - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PostLoad {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PostPersist {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PostRemove {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PostUpdate {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PrePersist {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PreRemove {} - - - - - - - - - - - - - - - - @Target({METHOD}) @Retention(RUNTIME) - public @interface PreUpdate {} - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface PrimaryKeyJoinColumn { - String name() default ""; - String referencedColumnName() default ""; - String columnDefinition() default ""; - } - - - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface QueryHint { - String name(); - String value(); - } - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface SecondaryTable { - String name(); - String catalog() default ""; - String schema() default ""; - PrimaryKeyJoinColumn[] pkJoinColumns() default {}; - UniqueConstraint[] uniqueConstraints() default {}; - Index[] indexes() default {}; - } - - - - - - - - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface SequenceGenerator { - String name(); - String sequenceName() default ""; - String catalog() default ""; - String schema() default ""; - int initialValue() default 1; - int allocationSize() default 50; - } - - - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface SqlResultSetMapping { - String name(); - EntityResult[] entities() default {}; - ConstructorResult[] classes() default{}; - ColumnResult[] columns() default {}; - } - - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface StoredProcedureParameter { - String name() default ""; - ParameterMode mode() default ParameterMode.IN; - Class type(); - } - - - - - - - - - - - - - - - - - - @Target({TYPE}) @Retention(RUNTIME) - public @interface Table { - String name() default ""; - String catalog() default ""; - String schema() default ""; - UniqueConstraint[] uniqueConstraints() default {}; - Index[] indexes() default {}; - } - - - - - - - - - - - - - - - - - - - @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) - public @interface TableGenerator { - String name(); - String table() default ""; - String catalog() default ""; - String schema() default ""; - String pkColumnName() default ""; - String valueColumnName() default ""; - String pkColumnValue() default ""; - int initialValue() default 0; - int allocationSize() default 50; - UniqueConstraint[] uniqueConstraints() default {}; - Indexes[] indexes() default {}; - } - - - - - - - - - - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Temporal { - TemporalType value(); - } - - - - - - - - - - - - - public enum TemporalType { - DATE, // java.sql.Date - TIME, // java.sql.Time - TIMESTAMP // java.sql.Timestamp - } - - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Transient {} - - - - - - - - - - - - - @Target({}) @Retention(RUNTIME) - public @interface UniqueConstraint { - String name() default ""; - String[] columnNames(); - } - - - - - - - - - - - - - - - - @Target({METHOD, FIELD}) @Retention(RUNTIME) - public @interface Version {} - - - - - - - - - - - - diff --git a/tooling/metamodel-generator/src/main/xsd/orm_3_1.xsd b/tooling/metamodel-generator/src/main/xsd/orm_3_1.xsd new file mode 100644 index 0000000000..f233261efa --- /dev/null +++ b/tooling/metamodel-generator/src/main/xsd/orm_3_1.xsd @@ -0,0 +1,2325 @@ + + + + + + + + + ... + + + + ]]> + + + + + + + + + + + + + + + + + + The entity-mappings element is the root element of a mapping + file. It contains the following four types of elements: + + 1. The persistence-unit-metadata element contains metadata + for the entire persistence unit. It is undefined if this element + occurs in multiple mapping files within the same persistence unit. + + 2. The package, schema, catalog and access elements apply to all of + the entity, mapped-superclass and embeddable elements defined in + the same file in which they occur. + + 3. The sequence-generator, table-generator, converter, named-query, + named-native-query, named-stored-procedure-query, and + sql-result-set-mapping elements are global to the persistence + unit. It is undefined to have more than one sequence-generator + or table-generator of the same name in the same or different + mapping files in a persistence unit. It is undefined to have + more than one named-query, named-native-query, sql-result-set-mapping, + or named-stored-procedure-query of the same name in the same + or different mapping files in a persistence unit. It is also + undefined to have more than one converter for the same target + type in the same or different mapping files in a persistence unit. + + 4. The entity, mapped-superclass and embeddable elements each define + the mapping information for a managed persistent class. The mapping + information contained in these elements may be complete or it may + be partial. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Metadata that applies to the persistence unit and not just to + the mapping file in which it is contained. + + If the xml-mapping-metadata-complete element is specified, + the complete set of mapping metadata for the persistence unit + is contained in the XML mapping files for the persistence unit. + + + + + + + + + + + + + + + + + These defaults are applied to the persistence unit as a whole + unless they are overridden by local annotation or XML + element settings. + + schema - Used as the schema for all tables, secondary tables, join + tables, collection tables, sequence generators, and table + generators that apply to the persistence unit + catalog - Used as the catalog for all tables, secondary tables, join + tables, collection tables, sequence generators, and table + generators that apply to the persistence unit + delimited-identifiers - Used to treat database identifiers as + delimited identifiers. + access - Used as the access type for all managed classes in + the persistence unit + cascade-persist - Adds cascade-persist to the set of cascade options + in all entity relationships of the persistence unit + entity-listeners - List of default entity listeners to be invoked + on each entity in the persistence unit. + + + + + + + + + + + + + + + + + + + + Defines the settings and mappings for an entity. Is allowed to be + sparsely populated and used in conjunction with the annotations. + Alternatively, the metadata-complete attribute can be used to + indicate that no annotations on the entity class (and its fields + or properties) are to be processed. If this is the case then + the defaulting rules for the entity and its subelements will + be recursively applied. + + @Target(TYPE) @Retention(RUNTIME) + public @interface Entity { + String name() default ""; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This element determines how the persistence provider accesses the + state of an entity or embedded object. + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface AssociationOverride { + String name(); + JoinColumn[] joinColumns() default{}; + JoinTable joinTable() default @JoinTable; + } + + + + + + + + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface AttributeOverride { + String name(); + Column column(); + } + + + + + + + + + + + + + + + + + This element contains the entity field or property mappings. + It may be sparsely populated to include only a subset of the + fields or properties. If metadata-complete for the entity is true + then the remainder of the attributes will be defaulted according + to the default rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Basic { + FetchType fetch() default EAGER; + boolean optional() default true; + } + + + + + + + + + + + + + + + + + + + + + + + + + public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH, DETACH}; + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface CollectionTable { + String name() default ""; + String catalog() default ""; + String schema() default ""; + JoinColumn[] joinColumns() default {}; + UniqueConstraint[] uniqueConstraints() default {}; + Index[] indexes() default {}; + } + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Column { + String name() default ""; + boolean unique() default false; + boolean nullable() default true; + boolean insertable() default true; + boolean updatable() default true; + String columnDefinition() default ""; + String table() default ""; + int length() default 255; + int precision() default 0; // decimal precision + int scale() default 0; // decimal scale + } + + + + + + + + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface ColumnResult { + String name(); + Class type() default void.class; + } + + + + + + + + + + + + + + public enum ConstraintMode {CONSTRAINT, NO_CONSTRAINT, PROVIDER_DEFAULT}; + + + + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface ConstructorResult { + Class targetClass(); + ColumnResult[] columns(); + } + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface Convert { + Class converter() default void.class; + String attributeName() default ""; + boolean disableConversion() default false; + } + + + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface Converter { + boolean autoApply() default false; + } + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface DiscriminatorColumn { + String name() default "DTYPE"; + DiscriminatorType discriminatorType() default STRING; + String columnDefinition() default ""; + int length() default 31; + } + + + + + + + + + + + + + + + + public enum DiscriminatorType { STRING, CHAR, INTEGER }; + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface DiscriminatorValue { + String value(); + } + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface ElementCollection { + Class targetClass() default void.class; + FetchType fetch() default LAZY; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the settings and mappings for embeddable objects. Is + allowed to be sparsely populated and used in conjunction with + the annotations. Alternatively, the metadata-complete attribute + can be used to indicate that no annotations are to be processed + in the class. If this is the case then the defaulting rules will + be recursively applied. + + @Target({TYPE}) @Retention(RUNTIME) + public @interface Embeddable {} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Embedded {} + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface EmbeddedId {} + + + + + + + + + + + + + + + + + Defines an entity listener to be invoked at lifecycle events + for the entities that list this listener. + + + + + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface EntityListeners { + Class[] value(); + } + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface EntityResult { + Class entityClass(); + FieldResult[] fields() default {}; + String discriminatorColumn() default ""; + } + + + + + + + + + + + + + + + + + public enum EnumType { + ORDINAL, + STRING + } + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Enumerated { + EnumType value() default ORDINAL; + } + + + + + + + + + + + + + public enum FetchType { LAZY, EAGER }; + + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface FieldResult { + String name(); + String column(); + } + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface ForeignKey { + String name() default ""; + ConstraintMode value() default CONSTRAINT; + String foreign-key-definition() default ""; + + Note that the elements that embed the use of the annotation + default this use as @ForeignKey(PROVIDER_DEFAULT). + + } + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface GeneratedValue { + GenerationType strategy() default AUTO; + String generator() default ""; + } + + + + + + + + + + + + + + public enum GenerationType { TABLE, SEQUENCE, IDENTITY, UUID, AUTO }; + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Id {} + + + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface IdClass { + Class value(); + } + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface Index { + String name() default ""; + String columnList(); + boolean unique() default false; + } + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface Inheritance { + InheritanceType strategy() default SINGLE_TABLE; + } + + + + + + + + + + + + + public enum InheritanceType + { SINGLE_TABLE, JOINED, TABLE_PER_CLASS}; + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface JoinColumn { + String name() default ""; + String referencedColumnName() default ""; + boolean unique() default false; + boolean nullable() default true; + boolean insertable() default true; + boolean updatable() default true; + String columnDefinition() default ""; + String table() default ""; + ForeignKey foreignKey() default @ForeignKey(); + } + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface JoinTable { + String name() default ""; + String catalog() default ""; + String schema() default ""; + JoinColumn[] joinColumns() default {}; + JoinColumn[] inverseJoinColumns() default {}; + UniqueConstraint[] uniqueConstraints() default {}; + Index[] indexes() default {}; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Lob {} + + + + + + + + + + + + public enum LockModeType { READ, WRITE, OPTIMISTIC, OPTIMISTIC_FORCE_INCREMENT, PESSIMISTIC_READ, PESSIMISTIC_WRITE, PESSIMISTIC_FORCE_INCREMENT, NONE}; + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface ManyToMany { + Class targetEntity() default void.class; + CascadeType[] cascade() default {}; + FetchType fetch() default LAZY; + String mappedBy() default ""; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface ManyToOne { + Class targetEntity() default void.class; + CascadeType[] cascade() default {}; + FetchType fetch() default EAGER; + boolean optional() default true; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface MapKey { + String name() default ""; + } + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface MapKeyClass { + Class value(); + } + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface MapKeyColumn { + String name() default ""; + boolean unique() default false; + boolean nullable() default false; + boolean insertable() default true; + boolean updatable() default true; + String columnDefinition() default ""; + String table() default ""; + int length() default 255; + int precision() default 0; // decimal precision + int scale() default 0; // decimal scale + } + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface MapKeyJoinColumn { + String name() default ""; + String referencedColumnName() default ""; + boolean unique() default false; + boolean nullable() default false; + boolean insertable() default true; + boolean updatable() default true; + String columnDefinition() default ""; + String table() default ""; + } + + + + + + + + + + + + + + + + + + + + + Defines the settings and mappings for a mapped superclass. Is + allowed to be sparsely populated and used in conjunction with + the annotations. Alternatively, the metadata-complete attribute + can be used to indicate that no annotations are to be processed + If this is the case then the defaulting rules will be recursively + applied. + + @Target(TYPE) @Retention(RUNTIME) + public @interface MappedSuperclass{} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface NamedAttributeNode { + String value(); + String subgraph() default ""; + String keySubgraph() default ""; + } + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface NamedEntityGraph { + String name() default ""; + NamedAttributeNode[] attributeNodes() default {}; + boolean includeAllAttributes() default false; + NamedSubgraph[] subgraphs() default {}; + NamedSubGraph[] subclassSubgraphs() default {}; + } + + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface NamedNativeQuery { + String name(); + String query(); + QueryHint[] hints() default {}; + Class resultClass() default void.class; + String resultSetMapping() default ""; //named SqlResultSetMapping + } + + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface NamedQuery { + String name(); + String query(); + LockModeType lockMode() default NONE; + QueryHint[] hints() default {}; + } + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface NamedStoredProcedureQuery { + String name(); + String procedureName(); + StoredProcedureParameter[] parameters() default {}; + Class[] resultClasses() default {}; + String[] resultSetMappings() default{}; + QueryHint[] hints() default {}; + } + + + + + + + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface NamedSubgraph { + String name(); + Class type() default void.class; + NamedAttributeNode[] attributeNodes(); + } + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface OneToMany { + Class targetEntity() default void.class; + CascadeType[] cascade() default {}; + FetchType fetch() default LAZY; + String mappedBy() default ""; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface OneToOne { + Class targetEntity() default void.class; + CascadeType[] cascade() default {}; + FetchType fetch() default EAGER; + boolean optional() default true; + String mappedBy() default ""; + boolean orphanRemoval() default false; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface OrderBy { + String value() default ""; + } + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface OrderColumn { + String name() default ""; + boolean nullable() default true; + boolean insertable() default true; + boolean updatable() default true; + String columnDefinition() default ""; + } + + + + + + + + + + + + + + + + + public enum ParameterMode { IN, INOUT, OUT, REF_CURSOR}; + + + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PostLoad {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PostPersist {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PostRemove {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PostUpdate {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PrePersist {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PreRemove {} + + + + + + + + + + + + + + + + @Target({METHOD}) @Retention(RUNTIME) + public @interface PreUpdate {} + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface PrimaryKeyJoinColumn { + String name() default ""; + String referencedColumnName() default ""; + String columnDefinition() default ""; + } + + + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface QueryHint { + String name(); + String value(); + } + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface SecondaryTable { + String name(); + String catalog() default ""; + String schema() default ""; + PrimaryKeyJoinColumn[] pkJoinColumns() default {}; + UniqueConstraint[] uniqueConstraints() default {}; + Index[] indexes() default {}; + } + + + + + + + + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface SequenceGenerator { + String name(); + String sequenceName() default ""; + String catalog() default ""; + String schema() default ""; + int initialValue() default 1; + int allocationSize() default 50; + } + + + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface SqlResultSetMapping { + String name(); + EntityResult[] entities() default {}; + ConstructorResult[] classes() default{}; + ColumnResult[] columns() default {}; + } + + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface StoredProcedureParameter { + String name() default ""; + ParameterMode mode() default ParameterMode.IN; + Class type(); + } + + + + + + + + + + + + + + + + + + @Target({TYPE}) @Retention(RUNTIME) + public @interface Table { + String name() default ""; + String catalog() default ""; + String schema() default ""; + UniqueConstraint[] uniqueConstraints() default {}; + Index[] indexes() default {}; + } + + + + + + + + + + + + + + + + + + + @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) + public @interface TableGenerator { + String name(); + String table() default ""; + String catalog() default ""; + String schema() default ""; + String pkColumnName() default ""; + String valueColumnName() default ""; + String pkColumnValue() default ""; + int initialValue() default 0; + int allocationSize() default 50; + UniqueConstraint[] uniqueConstraints() default {}; + Indexes[] indexes() default {}; + } + + + + + + + + + + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Temporal { + TemporalType value(); + } + + + + + + + + + + + + + public enum TemporalType { + DATE, // java.sql.Date + TIME, // java.sql.Time + TIMESTAMP // java.sql.Timestamp + } + + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Transient {} + + + + + + + + + + + + + @Target({}) @Retention(RUNTIME) + public @interface UniqueConstraint { + String name() default ""; + String[] columnNames(); + } + + + + + + + + + + + + + + + + @Target({METHOD, FIELD}) @Retention(RUNTIME) + public @interface Version {} + + + + + + + + + + + + diff --git a/tooling/metamodel-generator/src/main/xsd/persistence_2_1.xsd b/tooling/metamodel-generator/src/main/xsd/persistence_2_1.xsd deleted file mode 100644 index ee26921d94..0000000000 --- a/tooling/metamodel-generator/src/main/xsd/persistence_2_1.xsd +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - @(#)persistence_2_1.xsd 2.1 February 8, 2013 - - - - - - ... - - - ]]> - - - - - - - - - - - - - - - - - - - - - - Configuration of a persistence unit. - - - - - - - - - - - - Description of this persistence unit. - - - - - - - - - - - - Provider class that supplies EntityManagers for this - persistence unit. - - - - - - - - - - - - The container-specific name of the JTA datasource to use. - - - - - - - - - - - - The container-specific name of a non-JTA datasource to use. - - - - - - - - - - - - File containing mapping information. Loaded as a resource - by the persistence provider. - - - - - - - - - - - - Jar file that is to be scanned for managed classes. - - - - - - - - - - - - Managed class to be included in the persistence unit and - to scan for annotations. It should be annotated - with either @Entity, @Embeddable or @MappedSuperclass. - - - - - - - - - - - - When set to true then only listed classes and jars will - be scanned for persistent classes, otherwise the - enclosing jar or directory will also be scanned. - Not applicable to Java SE persistence units. - - - - - - - - - - - - Defines whether caching is enabled for the - persistence unit if caching is supported by the - persistence provider. When set to ALL, all entities - will be cached. When set to NONE, no entities will - be cached. When set to ENABLE_SELECTIVE, only entities - specified as cacheable will be cached. When set to - DISABLE_SELECTIVE, entities specified as not cacheable - will not be cached. When not specified or when set to - UNSPECIFIED, provider defaults may apply. - - - - - - - - - - - - The validation mode to be used for the persistence unit. - - - - - - - - - - - - - A list of standard and vendor-specific properties - and hints. - - - - - - - - - A name-value pair. - - - - - - - - - - - - - - - - - - - - Name used in code to reference this persistence unit. - - - - - - - - - - - - Type of transactions used by EntityManagers from this - persistence unit. - - - - - - - - - - - - - - - - - - - public enum PersistenceUnitTransactionType {JTA, RESOURCE_LOCAL}; - - - - - - - - - - - - - - - - public enum SharedCacheMode { ALL, NONE, ENABLE_SELECTIVE, DISABLE_SELECTIVE, UNSPECIFIED}; - - - - - - - - - - - - - - - - - - - public enum ValidationMode { AUTO, CALLBACK, NONE}; - - - - - - - - - - - diff --git a/tooling/metamodel-generator/src/main/xsd/persistence_3_0.xsd b/tooling/metamodel-generator/src/main/xsd/persistence_3_0.xsd new file mode 100644 index 0000000000..e2a2943937 --- /dev/null +++ b/tooling/metamodel-generator/src/main/xsd/persistence_3_0.xsd @@ -0,0 +1,342 @@ + + + + + + + + + ... + + + ]]> + + + + + + + + + + + + + + + + + + + + + + Configuration of a persistence unit. + + + + + + + + + + + + Description of this persistence unit. + + + + + + + + + + + + Provider class that supplies EntityManagers for this + persistence unit. + + + + + + + + + + + + The container-specific name of the JTA datasource to use. + + + + + + + + + + + + The container-specific name of a non-JTA datasource to use. + + + + + + + + + + + + File containing mapping information. Loaded as a resource + by the persistence provider. + + + + + + + + + + + + Jar file that is to be scanned for managed classes. + + + + + + + + + + + + Managed class to be included in the persistence unit and + to scan for annotations. It should be annotated + with either @Entity, @Embeddable or @MappedSuperclass. + + + + + + + + + + + + When set to true then only listed classes and jars will + be scanned for persistent classes, otherwise the + enclosing jar or directory will also be scanned. + Not applicable to Java SE persistence units. + + + + + + + + + + + + Defines whether caching is enabled for the + persistence unit if caching is supported by the + persistence provider. When set to ALL, all entities + will be cached. When set to NONE, no entities will + be cached. When set to ENABLE_SELECTIVE, only entities + specified as cacheable will be cached. When set to + DISABLE_SELECTIVE, entities specified as not cacheable + will not be cached. When not specified or when set to + UNSPECIFIED, provider defaults may apply. + + + + + + + + + + + + The validation mode to be used for the persistence unit. + + + + + + + + + + + + + A list of standard and vendor-specific properties + and hints. + + + + + + + + + A name-value pair. + + + + + + + + + + + + + + + + + + + + Name used in code to reference this persistence unit. + + + + + + + + + + + + Type of transactions used by EntityManagers from this + persistence unit. + + + + + + + + + + + + + + + + + + + public enum PersistenceUnitTransactionType {JTA, RESOURCE_LOCAL}; + + + + + + + + + + + + + + + + public enum SharedCacheMode { ALL, NONE, ENABLE_SELECTIVE, DISABLE_SELECTIVE, UNSPECIFIED}; + + + + + + + + + + + + + + + + + + + public enum ValidationMode { AUTO, CALLBACK, NONE}; + + + + + + + + + + +