Overview | Package | Class | Tree | Deprecated | Index | Help
| Java EE 5 SDK
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## javax.persistence
Annotation Type OneToOne

    @Target(value={METHOD,FIELD})
    @Retention(value=RUNTIME)
    public @interface OneToOne

This annotation defines a single-valued association to another entity that has one-to-one multiplicity. It is not normally necessary to specify the associated target entity explicitly since it can usually be inferred from the type of the object being referenced.

        Example 1: One-to-one association that maps a foreign key column

        On Customer class:

        @OneToOne(optional=false)
        @JoinColumn(
            name="CUSTREC_ID", unique=true, nullable=false, updatable=false)
        public CustomerRecord getCustomerRecord() { return customerRecord; }

        On CustomerRecord class:

        @OneToOne(optional=false, mappedBy="customerRecord")
        public Customer getCustomer() { return customer; }

        Example 2: One-to-one association that assumes both the source and target share the same primary key values.

        On Employee class:

        @Entity
        public class Employee {
            @Id Integer id;

            @OneToOne @PrimaryKeyJoinColumn
            EmployeeInfo info;
            ...
        }

        On EmployeeInfo class:

        @Entity
        public class EmployeeInfo {
            @Id Integer id;
            ...
        }

Since:
  Java Persistence 1.0

Optional Element Summary
`CascadeType[]` | `cascade` (Optional) The operations that must be cascaded to the target of the association.
`FetchType` | `fetch` (Optional) Whether the association should be lazily loaded or must be eagerly fetched.
`String` | `mappedBy` (Optional) The field that owns the relationship.
`boolean` | `optional` (Optional) Whether the association is optional.
`Class` | `targetEntity` (Optional) The entity class that is the target of the association.

### targetEntity

    public abstract Class targetEntity

  (Optional) The entity class that is the target of the association.

  Defaults to the type of the field or property that stores the association.

  Default:
    void.class

### cascade

    public abstract CascadeType[] cascade

  (Optional) The operations that must be cascaded to the target of the association.

  By default no operations are cascaded.

  Default:
    {}

### fetch

    public abstract FetchType fetch

  (Optional) Whether the association should be lazily loaded or must be eagerly fetched. The `EAGER` strategy is a requirement on the persistence provider runtime that the associated entity must be eagerly fetched. The `LAZY` strategy is a hint to the persistence provider runtime.

  Default:
    EAGER

### optional

    public abstract boolean optional

  (Optional) Whether the association is optional. If set to false then a non-null relationship must always exist.

  Default:
    true

### mappedBy

    public abstract String mappedBy

  (Optional) The field that owns the relationship. This element is only specified on the inverse (non-owning) side of the association.

  Default:
    ""

Overview | Package | Class | Tree | Deprecated | Index | Help
| Java EE 5 SDK
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

Submit a bug or feature

Copyright 2006 Sun Microsystems, Inc. All rights reserved.