0
我有3類,分別是:JPA - 分配不同的獨特約束兩個子類SINGLE_TABLE層次抽象類
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public abstract class Tag {
@Id
private String id;
private String name;
}
@Entity
@Table(uniqueConstraints=
@UniqueConstraint(columnNames={"name"}))
public class SystemTag extends Tag {
}
@Entity
@Table(uniqueConstraints=
@UniqueConstraint(columnNames = {"name", "user"}))
public class CustomTag extends Tag{
@ManyToOne
private User user;
}
,所以我想爲系統標籤使用唯一的名稱,唯一的名稱,用戶對來自定義標籤(多用戶可以創建相同的標籤),但我得到兩個警告如下:
<timestamp> WARN AnnotationBinder:601 - HHH000139: Illegal use of @Table in a subclass of a SINGLE_TABLE hierarchy: <domain>.CustomTag
<timestamp> WARN AnnotationBinder:601 - HHH000139: Illegal use of @Table in a subclass of a SINGLE_TABLE hierarchy: <domain>.SystemTag
而且它可以讓我創建兩個名稱相同的系統代碼,並使用了相同的用戶兩個同名的自定義標籤。
我該如何處理?
在項目設計小組負責人決定使用它作爲單個表,但我想我應該把它作爲每個類的連接或表使用。無論如何感謝:) – bdogru
以及你可能能夠使用鑑別器1表。取決於您獨特的關鍵要求。如果你在名稱/用戶上創建了密鑰,並忘記了可能依賴於你的數據庫的獨特名稱。例如對於記錄1/alan/null,2/alan/abc,3/alan/xyz應該沒問題:http://stackoverflow.com/a/767702/1356423 –