2015-11-10 44 views
2

我已經創建了一個父類,以使字段或映射對於單個位置中的所有實體都是公共的。帶有多於1個繼承級別拋出的@MappedSuperclass實體異常的映射中的重複列

但當繼承級別大於1,休眠拋出異常

MappingException: Repeated column in mapping for entity

的代碼示例是,

@MappedSuperclass 
public abstract class BaseModel { 

@Column(name="created_date") 
private Date createdDate; 

@Column(name = "modified_date") 
private Date modifiedDate; 

} 

@MappedSuperclass 
public class Order extends BaseModel { 

@Column(name="due_date", nullable = true) 
private Date dueDate; 

} 

@Entity 
public class Invoice extend Order { 

} 

可有人請指出任何東西,我做錯了?

+0

沒有錯多個級別的MappedSuperclass。假設你有一個Id註釋的地方,那就沒問題。不知道你的JPA提供者消息的含義。嘗試不同的JPA供應商 –

+0

非常感謝尼爾。它完美的作品。其實它是代碼中的一個缺陷。 – dharshan

回答

1

這在我身邊很好,就像發票中的一個屬性一樣,它將成爲主鍵。

我這樣做,它完美的作品創造了4列ID,CREATED_DATE日期,MODIFIED_DATE表,DUE_DATE

@Entity 
public class Invoice extends Order { 
    @Id 
    String id; 
} 
+0

非常感謝biraj。它完美的作品。其實它是代碼中的一個缺陷。 – dharshan

0

的根源問題是一個@Embeddable對象繼承了BaseModel及其被用於發票模型。因此拋出了重複的列異常。

相關問題