gpt4 book ai didi

java - Hibernate继承

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:46 26 4
gpt4 key购买 nike

我正在使用 hibernate 进行一个项目。我得到了这两个文件:

Person.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
}

患者.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
}

和 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();
}
}

我想让病人继承人,请问有什么办法解决?

即做了一个人之后,我想把病人和人联系起来。

最佳答案

我通常不鼓励人们在 Hibernate 中使用继承/多态性,这是一个很好的例子。您从创建这种继承中获得的附加值超过了它产生的复杂性?只为 Person 和 Patient 使用一个实体,并使 Patient 包含一个人,即与一个人建立 M-1 关系,这不是更容易吗?

保持简单,尤其是使用 Hibernate。关系数据库不是用来处理继承的,它们是用来处理关系的,所以为什么要把它强加到它不适合的地方呢?

关于java - Hibernate继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com