[英]How to Segregate comman fields in Hibernate annotaion mapping
我在我的項目中使用基於spring 3和hibernate4.2的注釋配置,我有許多數據庫表(視圖對象/實體),其中包含兩個公共字段createdDate和updatedDate。 我想將這兩個領域分開。 我考慮將這兩個字段保留在某個類中,該類充當所有實體的超類,並使用每個子類繼承映射的表來實現。 我不需要此超類和子類實體之間的任何外鍵關系..任何人都可以通過示例向我提出更好的解決方案..謝謝。
您需要使用@MappedSuperclass
注釋超類。
摘自《 Hibernate文檔》第5.1.6.4節。 從超類繼承屬性
這種(從超類繼承屬性)有時可用於通過技術或業務超類共享公共屬性,而無需將其包括為常規映射實體(即,該實體沒有特定表)。 為此,您可以將它們映射為@MappedSuperclass。
@MappedSuperclass
public class BaseEntity {
@Temporal(TemporalType.TIMESTAMP)
public Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
public Date updatedDate;
}
@Entity
class NormalEntity extends BaseEntity {
@Id
public Integer id
...
}
不要使用@MappedSuperclass
,僅在類型實際上是超類的子類型的情況下使用它,顯然,這不是從閱讀您的問題而來的。
研究@Embedded
和@Embeddable
,這是您真正想要的。
教程: http : //www.concretepage.com/hibernate/example-embeddable-embedded-hibernate-annotation.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.