2015-06-15 19 views
11

Có thể sử dụng thừa kế trên các đối tượng giá trị được nhúng trong các thực thể học thuyết không?Thừa kế trên các tài liệu nhúng của giáo lý

Tình huống tôi đang nghĩ đến là:

Tôi có một đối tượng có và đối tượng giá trị được nhúng. Đó là đối tượng giá trị có hệ thống phân cấp như sau:

class myEntity { 
    /** @Embedded(class = "baseValueObject") */ 
    private $value_object; 
    ... 
} 

class baseValueObject {...} 
class valueObject1 extends baseValueObject{...} 
class valueObject2 extends baseValueObject2{...} 

Nếu tôi xác định thực thể của tôi để có baseValueObject như một nhúng, không có gì xảy ra khi tôi sử dụng schema-công cụ để cập nhật schema db của tôi, vì vậy tôi đoán đó không phải là cách để làm đi.

Tùy chọn khác mà tôi đang nghĩ là sử dụng thừa kế bảng đơn trên thực thể để tạo thực thể con sử dụng một trong các đối tượng giá trị và thực thể con khác cho đối tượng kia. Như thế này:

class myEntity { 
    /** @Embedded(class = "baseValueObject") */ 
    private $value_object; 
    ... 
} 

class myEntityA extends myEntity { 
    /** @Embedded(class = "valueObject1") */ 
    private $value_object; 
    ... 
} 

class myEntityB extends myEntity { 
    /** @Embedded(class = "valueObject2") */ 
    private $value_object; 
    ... 
} 

class baseValueObject {...} 
class valueObject1 extends baseValueObject{...} 
class valueObject2 extends baseValueObject2{...} 

Cách tiếp cận thích hợp là gì? Thậm chí có thể làm theo cách này không?

Trả lời

0

Nếu bạn muốn sử dụng Object Giá trị của bạn trong lĩnh vực này thì bạn nên xác định loại mới trong học thuyết http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/custom-mapping-types.html

Nếu bạn muốn kế thừa tài sản từ cơ sở thì bạn nên sử dụng @MappedSuperclass chú thích http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html

Bạn nên sử dụng @Embeddable khi bạn muốn tách thực thể theo các thuộc tính cụ thể bằng cách tạo các thực thể cụ thể. Vì vậy, bạn không thể sử dụng đối tượng giá trị làm mục tiêu. Theo tài liệu (tôi không thể chia sẻ liên kết thứ ba).

Các vấn đề liên quan