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 Personcó thể chứa hai Addresstrườ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.