Tôi đang sử dụng chế độ ngủ đông và chú thích cho ORM. Tôi có giao diện cho tất cả các hạt và tôi đang sử dụng targetEntity cho các mối quan hệ: hibernate không thể lấy được loại vì getter trả về một giao diện chứ không phải là một bean.Ghi đè @ManyToOne targetEntity cho @Embedded với giao diện
Tôi nhận được một MappingException (không thể xác định loại) cho các hạt được nhúng.
@Entity(name="FieldBean")
public class FieldBean implements Field {
...
}
@Embeddable
public class FacetBean implements Facet {
...
@ManyToOne(targetEntity = FieldBean.class)
@JoinColumn(name = "field_id")
public Field getField() {
return field;
}
}
@Entity(name = "Chart")
public class ChartBean implements Chart {
@Embedded
@AssociationOverride(
name = "field",
joinColumns = @JoinColumn(name = "category_facet_field_id")
)
public Facet getCategoryFacet() {
return categoryFacet;
}
}
tôi nhận được MappingException: Không thể xác định loại cho: Field, ở bảng: bảng xếp hạng, đối với các cột: [org.hibernate.mapping.Column (field)]
Sử dụng đậu thay vì giao diện cho tài sản và getter/setter khai báo giải quyết vấn đề, nhưng tôi muốn dính vào sử dụng giao diện. Chỉ sử dụng bean để khai báo tài sản không giải quyết được vấn đề.
Có ai có thể chỉ cho tôi đúng hướng không?
Tôi đang sử dụng giao diện và thừa kế. Thừa nhận rằng điều này đã giới thiệu một số phức tạp ở cấp độ ORM. Mặt khác, nó cung cấp cho tôi mức độ trừu tượng mà tôi đang tìm kiếm. – user1966634
** Giao diện ** được sử dụng để cung cấp sự trừu tượng của công nghệ ORM. Sử dụng cách tiếp cận MDA, tôi tạo ra mã lớp tồn tại trong một mô hình đối tượng, bao gồm các giao diện, các bean và các lớp dịch vụ. Một công nghệ ORM thay thế có thể được sử dụng một cách minh bạch bằng cách giữ cho các giao diện ổn định nhưng tạo ra các bean thay thế và các lớp dịch vụ. – user1966634
** Thừa kế ** là cần thiết từ phối cảnh mô hình dữ liệu để hỗ trợ cả chế độ xem chung và cụ thể trên dữ liệu, cụ thể nhưng không chỉ ở cấp cơ sở dữ liệu quan hệ. Mặc dù có một số nhược điểm, tính năng này vẫn hữu ích và đơn giản hóa mã ở các cấp cao hơn trong ngăn xếp ứng dụng. – user1966634