我在Jboss7環境中使用Hibernate4.1,Postgres9數據庫作爲後端。我有一個名爲documents
的表。它看起來像這樣:基於表列是非空/非空的,我可以繼承@Entity嗎?
CREATE TABLE documents (
id serial primary key,
name varchar(255) not null,
path varchar(255) not null,
content text
);
現在我已經有一個名爲Document
反映該表的實體:
@Entity
public class Document {
@Id @GeneratedValue(strategy = IDENTITY)
Integer id;
@Column(nullable = false)
String name;
String path;
@Type(type = "text")
String content;
}
實際的表/實體有些做大實體有附加一堆邏輯它基於它是否由文件(非空path
)或僅字符串(非空content
)支持。我想將文件處理拆分爲一個名爲FileDocument
的單獨實體,該實體將從Document
延伸。 我可以用Hibernate來映射它嗎?如果是這樣,怎麼樣?
我寧願如果我可以使用單表繼承和基於path
列來表示這個「自然」,而不需要添加另一列。
我應該補充說,如果文檔可以被解析或OCR,那麼「文件支持」文檔仍然可以有非空的content
。
您是否檢查過MappedSuperClass註解? – fiso 2013-03-19 08:52:28
是的,但我的理解是'@ MappedSuperClass'僅用於在實體之間共享公共屬性?在這種情況下,我的根'Document'類是一個完整的實體,它是我當前所有代碼查詢的實體(但有時它現在將獲得具有附加功能的子類)。 – mabi 2013-03-19 09:01:03