Annotation Type Embedded


@Target(FIELD) @Retention(RUNTIME) public @interface Embedded
Specifies a persistent field or property of an entity whose value is an instance of an embeddable class. The embeddable class must be annotated as Embeddable.

The AttributeOverride, AttributeOverrides, AssociationOverride, and AssociationOverrides annotations may be used to override mappings declared or defaulted by the embeddable class.

   Example:

   @Embedded
   @AttributeOverrides({
       @AttributeOverride(name="startDate", column=@Column("EMP_START")),
       @AttributeOverride(name="endDate", column=@Column("EMP_END"))
   })
   public EmploymentPeriod getEmploymentPeriod() { ... }
 
Since:
Java Persistence 1.0
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    WARNING: This is an Ebean extension (not yet part of JPA standard, refer to JPA_SPEC-23).
  • Element Details

    • prefix

      String prefix
      WARNING: This is an Ebean extension (not yet part of JPA standard, refer to JPA_SPEC-23).

      When specified all the properties in the embedded bean have a prefix applied to their DB column name.

      Example:

      invalid input: '{@code
      
        @Entity
        public class Invoice {
          ...
      
          @Embedded(prefix="ship_")
          Address shipAddress;
      
          @Embedded(prefix="bill_")
          Address billAddress;
      
       }</pre>
       <p>
       Without this extension we need to specify AttributeOverride on each property like:
       </p>
       <pre>{@code
      
        @Entity
        public class Invoice {
          ...
      
          @Embedded
          @AttributeOverride(name = "street", column = @Column(name = "ship_street"))
          @AttributeOverride(name = "suburb", column = @Column(name = "ship_suburb"))
          @AttributeOverride(name = "city", column = @Column(name = "ship_city"))
          @AttributeOverride(name = "status", column = @Column(name = "ship_status"))
          Address shipAddress;
      
      
          @Embedded
          @AttributeOverride(name = "street", column = @Column(name = "bill_street"))
          @AttributeOverride(name = "suburb", column = @Column(name = "bill_suburb"))
          @AttributeOverride(name = "city", column = @Column(name = "bill_city"))
          @AttributeOverride(name = "status", column = @Column(name = "bill_status"))
          Address billAddress;
      
       }</pre>'
      Default:
      ""