我與Hibernate標註工作,我想要解決這個問題去如下:Hibernate註解 - @MappedSuperclass如何覆蓋列標識符
我需要有2個不同的@Entity類具有相同列映射但具有不同的標識符。
第一個應該使用id作爲標識符。
第二個應該使用名稱作爲標識符。
所以,我有一個抽象類,用@MappedSuperclass註解,它具有包括id和name在內的所有列,另外還有2個@Entity類,用於擴展超類並覆蓋id和name的getters。
@MappedSuperclass
public class MappingBase {
protected Integer id;
protected String name;
@Column (name = "ID")
public void getId() {
return this.id;
}
@Column (name = "NAME")
public void getName() {
return this.name;
}
}
@Entity
@Table (name = "TABLE")
public class Entity1 extends MappingBase {
@Id
@Column (name = "ID")
public void getId() {
return this.id;
}
}
@Entity
@Table (name = "TABLE")
public class Entity2 extends MappingBase {
@Id
@Column (name = "NAME")
public void getName() {
return this.name;
}
}
注意:我必須在超類中有成員(id,name)。 我知道我可以將@Transient添加到ID和名稱getters中,但這意味着我必須在每個類中添加它們並且它不是一個好的設計:( 另外,下面的insertable =「false,updateable = false可以幫助,但我不明白這個是什麼意思?
請幫幫我!
你有沒有辦法做到這一點,我也有同樣的情況,我需要覆蓋子類中的@Id字段 – Ysak