我有一個令人沮喪的映射問題,肯定需要一些眼球。 我有一個抽象類,具有單個表的繼承策略的子類。 它擁有一個聯繫人,並且需要也是具有相同繼承策略的抽象類。 這裏是我的代碼:OneToOne映射不適用於抽象子類
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING)
@Table(name = "leads")
@Cache(region = "com.qe.model.Lead", usage = CacheConcurrencyStrategy.READ_WRITE)
public abstract class Lead {
private Long id;
protected Contact contact;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(cascade = CascadeType.ALL, mappedBy = "lead")
public Contact getContact() {
return contact;
}
public void setContact(Contact contact) {
this.contact = contact;
}
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING)
@Table(name = "contacts")
@Cache(region = "com.qe.model.Contact", usage = CacheConcurrencyStrategy.READ_WRITE)
public abstract class Contact {
private Long id;
private Lead lead;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne
@JoinColumn(name = "lead_id")
public Lead getLead() {
return lead;
}
public void setLead(Lead lead) {
this.lead = lead;
}
}
@Entity
@DiscriminatorValue("AUTO")
public class AutoContact extends Contact {
}
我得到的錯誤:
無法確定類型:com.qe.model.AutoContact,在表: 線索,爲列:[組織.hibernate.mapping.Column(接觸)
任何想法,將不勝感激......