@Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface Embedded
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() { ... }
Embeddable,
AttributeOverride,
AttributeOverrides,
AssociationOverride,
AssociationOverridespublic abstract String prefix
When specified all the properties in the embedded bean have a prefix applied to their DB column name.
@Entity
public class Invoice {
...
@Embedded(prefix="ship_")
Address shipAddress;
@Embedded(prefix="bill_")
Address billAddress;
Without this extension we need to specify AttributeOverride on each property like:
@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;
Copyright © 2016. All rights reserved.