如何在冬眠中进行遗传

时间:2016-02-24 17:04:40

标签: hibernate jpa

我正在尝试开发一个管理书籍(图书馆)的应用程序。 我正在使用hibernate生成关系数据库。 我有这些课程:User,Adherent,Admin

@entity
@Table(name="users")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE_USER",discriminatorType=DiscriminatorTyp)

class User{
@Id
private int UserId;
private String name;
private String email

}

@Entity
@DiscriminatorValue("ADH")
public class Adherent extends User{

    private int solde;
    private int penalised;

    @OneToMany(mappedBy="adherent")
    private List<Ouvrage> ouvrages;
}

@Entity
@Table(name="ouvrages")
public class Ouvrage {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int idOuvrage;
    private String ISBN;
    private String Titre;
    private boolean reservable;
    private boolean dispo;
    @ManyToOne
    @JoinColumn(name="proprietaire")
    private Adherent proprietaire;
    @OneToOne(mappedBy="ouvrage")
    private Emprunt emrunt;
}

@Entity
@DiscriminatorValue("ADM")
public class Admin extends User{
    private String notifications;
    private String messages;

}

当我测试时我得到了这个错误

  在

2 个答案:

答案 0 :(得分:0)

尝试定义

@JoinColumn(name="proprietaire")
private Adherent proprietaire;

作为标准用户

@JoinColumn(name="proprietaire")
private User proprietaire;

如果数据库中存在的数据没有损坏,并且总是将其设置为Adherent类型,则实数类型将始终为Adh​​erent。

答案 1 :(得分:0)

谢谢,我解决了这个问题,我已经在我的贴片实体中输入了hibernate.annotation而不是java.persistance