Embeddable classes¶
Contents
Embeddable classes group the properties for Entity classes.
Embeddable definition¶
The following code snippet shows how to define an embeddable:
@Embeddable
public class Address {
final String city;
final String street;
@Column(name = "ZIP_CODE")
final String zip;
public Address(String city, String street, String zip) {
this.city = city;
this.street = street;
this.zip = zip;
}
}
The embeddable class is used as the entity field type:
@Entity
public class Employee {
@Id
Integer id;
Address address;
}
The above entity definition is equivalent to following one:
@Entity
public class Employee {
@Id
Integer id;
String city;
String street;
@Column(name = "ZIP_CODE")
String zip;
}
Naming convention¶
A naming convention is inherited from the enclosing Entity classes.
Field definition¶
By default, the fields are persistent and correspond to the database columns or result set columns.
The field type must be one of the following:
- Basic classes
- Domain classes
- java.util.Optional, whose element is either Basic classes or Domain classes
- java.util.OptionalInt
- java.util.OptionalLong
- java.util.OptionalDouble
@Embeddable
public class Address {
...
String street;
}
Method definition¶
There are no limitations in the use of methods.