org.hibernate.jpa.orm_2_0.xsd Maven / Gradle / Ivy
@(#)orm_2_0.xsd 2.0 October 1 2009
...
]]>
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, named-query, named-native-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 also undefined to have more than one named-query,
named-native-query, or result-set-mapping of the same name 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 {};
@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();
@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({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({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 "";
@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
{};
@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 {
name="map-key-column" type="orm:map-key-column"
}
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({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({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 "";
}
@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 {};
}
@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 {}; ColumnResult[] columns() default {};
@Target({TYPE}) @Retention(RUNTIME) public @interface Table {
String name() default "";
String catalog() default ""; String schema() default ""; UniqueConstraint[] uniqueConstraints() 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 {};
@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 {}