Jef*_*Jef 5 java database inheritance hibernate
我正在使用hibernate开发一个项目.我有这两个文件:
Persoon.java
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "PROJ_TYPE")
@Table(name = "PROJECT")
public class Persoon {
@Id
@GeneratedValue
protected int persoonsnummer;
protected String voornaam;
protected String achternaam;
protected String adres;
protected String geboortedatum;
protected String telefoonnummer;
protected String titel;
// Getters and setters ommited for brevity
}
Run Code Online (Sandbox Code Playgroud)
Patient.java
@Entity
@DiscriminatorValue("P")
@Table(name="PATIENT")
public class Patient extends Persoon implements Serializable {
protected String allergieen;
protected String bijzonderheden;
// Getters and setters ommited for brevity
}
Run Code Online (Sandbox Code Playgroud)
并且Test.java填充表格:
public class Test {
public static void main(String[] args) {
// get a session
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
// Start a tx
session.beginTransaction();
// create a person
Persoon i = new Persoon();
i.setVoornaam("Henk");
i.setAchternaam("Oliebol");
i.setAdres("1234AA Rotterdam");
i.setGeboortedatum("10-10-1990");
i.setTelefoonnummer("012345678");
i.setTitel("Patient");
session.save(i);
// create a patient
Patient p = new Patient();
p.setAllergieen("geen");
p.setBijzonderheden("geen");
session.save(p);// create another car
// commit the tx,
// so that it will be visible in the db
session.getTransaction().commit();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望患者继承persoon,解决这个问题的方法是什么?
即做完一个人后,我想把病人连接到persoon.
我一般不鼓励人们在Hibernate中使用继承/多态,这是一个很好的例子.您从创建这种继承中获得的附加值是否超过了它产生的复杂性?如果只有一个实体用于人,一个用于患者,并且使患者包含一个人,即与一个人有M-1关系,这不是更容易吗?
保持简单,特别是使用Hibernate.关系数据库并不意味着处理继承,它们是为了处理关系,所以为什么要强制它进入它不适合的东西?
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |