Lớp thực thể JPA có thể chứa hai trường nhúng ( @Embedded
) không? Một ví dụ sẽ là:
@Entity
public class Person {
@Embedded
public Address home;
@Embedded
public Address work;
}
public class Address {
public String street;
...
}
Trong trường hợp này, a Person
có thể chứa hai Address
trường hợp - nhà riêng và cơ quan. Tôi đang sử dụng JPA với việc triển khai Hibernate. Khi tôi tạo lược đồ bằng Hibernate Tools, nó chỉ nhúng một lược đồ Address
. Những gì tôi muốn là hai phiên bản nhúng Address
, mỗi phiên bản có tên cột được phân biệt hoặc chờ trước với một số tiền tố (chẳng hạn như nhà riêng và cơ quan). Tôi biết @AttributeOverrides
, nhưng điều này yêu cầu mỗi thuộc tính phải được ghi đè riêng. Điều này có thể trở nên cồng kềnh nếu đối tượng nhúng ( Address
) trở nên lớn vì mỗi cột cần được ghi đè riêng lẻ.
name="street"
đề cập đến tên của thuộc tính, không phải tên cột.