我在Oracle DB中有很少的表,並且喜歡執行逆向工程。 每個數據庫表列名稱具有唯一的表名首字母作爲前綴,例如「ID」爲「C_ID」,「C_LAST_UPDATED」等。其次,在每個表格中有少數列是常見的,例如, 「X_ID」,「X_LAST_UPDATED」其中「X」是表的首字母。Eibernate的Hibernate基礎實體可以共享類似的特性
我的問題是,是否有可能使基本實體擁有常見的屬性,如id,最後更新爲上述表?
在此先感謝
編輯:
到目前爲止,我已經嘗試創建BaseEntity但它不似乎工作,同時生成的代碼解決我剛纔提到的,即常見的屬性有不同的問題每個表中的列名稱。
@MappedSuperclass
public abstract BaseEntity implements java.io.Serializable
{
@Id
@Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
private BigDecimal ID ;
@Temporal(TemporalType.DATE)
@Column(name = "INDATE", nullable = false, length = 7)
private Date INDATE;
//--- Getters & Setters ---
}
@Entity
@Table(name = "TABLE1", schema = "TEMP_1")
public class Entity1 extends BaseEntity
{
@Id
@Column(name = "T1_ID", unique = true, nullable = false, precision = 22, scale = 0)
private BigDecimal ID;
@Temporal(TemporalType.DATE)
@Column(name = "T1_INDATE", nullable = false, length = 7)
private Date INDATE;
//--- Getters & Setters ---
}
@Entity
@Table(name = "TABLE2", schema = "TEMP_1")
public class Entity2 extends BaseEntity
{
@Id
@Column(name = "T2_ID", unique = true, nullable = false, precision = 22, scale = 0)
private BigDecimal ID;
@Temporal(TemporalType.DATE)
@Column(name = "T2_INDATE", nullable = false, length = 7)
private Date INDATE;
//--- Getters & Setters ---
}
我明白它應該工作,如果每個類/表中的共同屬性必須具有相同的列名稱,例如表1的ID列爲「T1_ID」,而表2的「T2_ID」不允許我使用超類。請看編輯過的部分 – Rehman 2012-02-14 17:07:00
看起來在這種情況下,你不能在所有類中使用普通類。 – Mirian 2012-02-15 07:16:57
感謝您的回覆。這就是我所假設的。我想,我應該刪除我不允許做的列前綴。 – Rehman 2012-02-15 10:37:37