Я вижу много примеров отношения «один ко многим», сделанного с помощью @ Embeddable , например:
@Entity
@Table(name = "profiles")
public class Profile {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@ElementCollection
@CollectionTable(name = "profile_addresses", joinColumns = @JoinColumn(name = "profile_id"))
private List<Address> addresses;
// getters, setters
}
@Embeddable
public class Address {
@Column(name = "zip_code")
private String zipCode;
// other fields
}
Работает с такими таблицами:
profiles: addresses:
| id | name | | profile_id | zip_code |
| 1 | Alex | | 1 | 95050 |
| 1 | 95109 |
Но как использовать в embeddable Address entity свой собственный автоматически сгенерированный идентификатор?
Например, в таких таблицах:
profiles: addresses:
| id | name | | profile_id | address_id | zip_code |
| 1 | Alex | | 1 | 1 | 95050 |
| 1 | 2 | 95109 |