@(#)orm_1_0.xsd 1.0 Dec 9 2005 @Target(TYPE) @Retention(RUNTIME) public @interface Entity { String name() default ""; } public enum AccessType { PROPERTY, FIELD }; @Target({METHOD}) @Retention(RUNTIME) public @interface PrePersist {} @Target({METHOD}) @Retention(RUNTIME) public @interface PostPersist {} @Target({METHOD}) @Retention(RUNTIME) public @interface PreRemove {} @Target({METHOD}) @Retention(RUNTIME) public @interface PostRemove {} @Target({METHOD}) @Retention(RUNTIME) public @interface PreUpdate {} @Target({METHOD}) @Retention(RUNTIME) public @interface PostUpdate {} @Target({METHOD}) @Retention(RUNTIME) public @interface PostLoad {} public enum FlushModeType { COMMIT, AUTO } @Target({}) @Retention(RUNTIME) public @interface QueryHint { String name(); String value(); } @Target({TYPE}) @Retention(RUNTIME) public @interface NamedQuery { String name(); String query(); QueryHint[] hints() default {}; } @Target({TYPE}) @Retention(RUNTIME) public @interface NamedNativeQuery { String name(); String query(); QueryHint[] hints() default {}; Class resultClass(); String resultSetMapping() default ""; // name of SQLResultSetMapping } @Target({TYPE, METHOD}) @Retention(RUNTIME) public @interface SqlResultSetMapping { String name(); EntityResult[] entities() default {}; ColumnResult[] columns() default {}; } @Target({}) @Retention(RUNTIME) public @interface EntityResult { Class entityClass(); FieldResult[] fields() default {}; String discriminatorColumn() default ""; } @Target({}) @Retention(RUNTIME) public @interface FieldResult { String name(); String column(); } @Target({}) @Retention(RUNTIME) public @interface ColumnResult { String name(); } @Target({TYPE}) @Retention(RUNTIME) public @interface Table { String name() default ""; String catalog() default ""; String schema() default ""; UniqueConstraint[] uniqueConstraints() default {}; } @Target({TYPE}) @Retention(RUNTIME) public @interface SecondaryTable { String name(); String catalog() default ""; String schema() default ""; PrimaryKeyJoinColumn[] pkJoinColumns() default {}; UniqueConstraint[] uniqueConstraints() default {}; } @Target({TYPE}) @Retention(RUNTIME) public @interface UniqueConstraint { String[] columnNames(); } @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({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 ""; } public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO }; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface AttributeOverride { String name(); Column column(); } @Target({TYPE}) @Retention(RUNTIME) public @interface IdClass { Class value(); } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Id {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface EmbeddedId {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Transient {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Version {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Basic { FetchType fetch() default EAGER; boolean optional() default true; } public enum FetchType { LAZY, EAGER }; @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Lob {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Temporal { TemporalType value() default TIMESTAMP; } public enum TemporalType { DATE, // java.sql.Date TIME, // java.sql.Time TIMESTAMP // java.sql.Timestamp } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Enumerated { EnumType value() default ORDINAL; } public enum EnumType { ORDINAL, STRING } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface ManyToOne { Class targetEntity(); CascadeType[] cascade() default {}; FetchType fetch() default EAGER; boolean optional() default true; } public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH}; @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface OneToOne { Class targetEntity(); CascadeType[] cascade() default {}; FetchType fetch() default EAGER; boolean optional() default true; String mappedBy() default ""; } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface OneToMany { Class targetEntity(); CascadeType[] cascade() default {}; FetchType fetch() default LAZY; String mappedBy() default ""; } @Target({METHOD, FIELD}) 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 ManyToMany { Class targetEntity(); CascadeType[] cascade() default {}; FetchType fetch() default LAZY; String mappedBy() default ""; } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface GeneratedValue { GenerationType strategy() default AUTO; String generator() default ""; } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface MapKey { String name() default ""; } @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface OrderBy{ String value() default ""; } @Target({TYPE}) @Retention(RUNTIME) public @interface Inheritance { InheritanceType strategy() default SINGLE_TABLE; } public enum InheritanceType { SINGLE_TABLE, JOINED, TABLE_PER_CLASS}; @Target({TYPE}) @Retention(RUNTIME) public @interface DiscriminatorValue { String value(); } public enum DiscriminatorType { STRING, CHAR, INTEGER }; @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface PrimaryKeyJoinColumn { String name() default ""; String referencedColumnName() default ""; String columnDefinition() default ""; } @Target({TYPE}) @Retention(RUNTIME) public @interface DiscriminatorColumn { String name() default ""; DiscriminatorType discriminatorType() default STRING; String columnDefinition() default ""; int length() default 31; } @Target({TYPE}) @Retention(RUNTIME) public @interface Embeddable {} @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Embedded {} @Target(TYPE) @Retention(RUNTIME) public @interface MappedSuperclass{} @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface SequenceGenerator { String name(); String sequenceName() default ""; int initialValue() default 0; int allocationSize() default 50; } @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 {}; }