2012年2月14日 星期二

[JPA] @Embedded, @AttributeOverride

@Embedded
此 attribute 為一個物件。
ex: 原有的 attribute A, B, C 被包裝為 Class X,那麼想使用 X 時就得加上此宣告。

@Embeddable
此物件可做為其他物件的 attribute。

@AttributeOverride
重新指定物件內屬性所對應的欄位名稱,若已是相同的欄位名稱則不需再指定。


@Entity(name = "ObjectX")
@Table(name = "TABLE_NAME")
public class ObjectX {
    @Embedded
    @AttributeOverrides({
        @AttributeOverride(name = "a", column = @Column(name = "X_A")),
        @AttributeOverride(name = "b", column = @Column(name = "X_B"))
    })
    public ObjectY getObjectY() {  return objectY;  }
}

@Embeddable
public class ObjectY {
    @Column(name = "Y_A")
    public String getA() {  return a;  }

    @Column(name = "Y_B")
    public String getB()  {  return b;  }
}



沒有留言:

張貼留言