Annotation Type ElementCollection


@Retention(CLASS) @Target(FIELD) public @interface ElementCollection
Mapping for an owned collection of scalar values.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Names the scalar value column in the collection table.
    Controls relationship initialization.
    Names the column that holds the owner's id in the collection table.
    Names the column that stores each element's position, which keys the table together with the owner and keeps a List's order and duplicates.
    The SQL type of the value column, written into CREATE TABLE as it is, like Column.type -- for example LONGTEXT -- and validated against the existing column the same way.
  • Element Details

    • fetch

      FetchType fetch
      Controls relationship initialization.
      Returns:
      fetch policy; EAGER for to-one and LAZY for collections by default
      Default:
      LAZY
    • column

      String column
      Names the scalar value column in the collection table.
      Returns:
      column name; element_value by default
      Default:
      "element_value"
    • joinColumn

      String joinColumn
      Names the column that holds the owner's id in the collection table. Empty keeps JoinTable.joinColumn when that is set and owner_id otherwise; naming the column in both places is a build error.
      Returns:
      owner column name; empty for the default
      Default:
      ""
    • type

      String type
      The SQL type of the value column, written into CREATE TABLE as it is, like Column.type -- for example LONGTEXT -- and validated against the existing column the same way.
      Returns:
      SQL type; empty for the dialect's type for the element class
      Default:
      ""
    • positionColumn

      String positionColumn

      Names the column that stores each element's position, which keys the table together with the owner and keeps a List's order and duplicates.

      An empty name maps a Set to a table with no position column, keyed by the owner and the value -- the layout JPA providers create, so a table one of them made can be adopted as it is. Such a Set cannot hold null, and a text value is limited to 255 characters, like any text key.

      Returns:
      column name; element_position by default, empty for none
      Default:
      "element_position"