【问题标题】:inheritance and object relational mapping in java using jpajava中使用jpa的继承和对象关系映射
【发布时间】:2013-11-16 20:39:57
【问题描述】:

在我的项目中,我有一个教授、一个学生和一个小组课程。在我的项目中:教授和学生有很多共同点,他们之间的唯一区别在于方法和与小组课程的关系,所以我考虑过继承和创建人抽象类。
我首先在三个映射选项之间感到困惑,但我最终选择了加入的一个 但我不知道如何在教授和小组(双向多对多)以及学生和小组(多对一和单对多)之间建立关系。
我习惯于在没有继承的情况下映射实体:现在我很困惑。
编辑(我是突尼斯人,我们在教育中使用法语)

   @Entity
    public class Etudiant {
private int cin;
private String nom;
private String prenom;
private String email;
private String motDePase;
private String imageProfil;

这是教授课的一部分

    @Entity
    public class Professeur {

private int cin;

private String nom;

private String prenom;

private String email;

private String motDePasse;

private String imageProfil;

我没有创建 person 类但我只创建了教授、学生和组继承

【问题讨论】:

  • 显示您的意思的代码表示。那么这对我们双方都会更有意义。
  • 您的实体在数据库中是否有不同的表,或者两个实体都有一个表?
  • @Alex 我没有创建数据库,但我正在创建实体,我想从实体生成表,我想知道如何创建与组的关系以及加入的继承策略

标签: java inheritance jpa orm


【解决方案1】:

注释(ManyToOne 和 OneToMany)Difference 之间的区别请参考这里

您可以为 Professeur 和 Etudiant 创建一个超类

  • 注意:如果使用接口,接口中的每个字段都是公共的、静态的和最终的。

希望对你有帮助。

【讨论】:

  • 我会解释更多:查看教授和学生之间的共同点 我想为他们创建一个抽象的超类,但问题是我应该把关系表达式放在哪里:我把它放在超类或教授(教授和组之间的关系是ManyToMany)和学生(学生和组之间的关系是一个学生对一组,多个学生一组)
  • 您是否熟悉 jpa 以及如何创建表,或者这是该技术的第一个项目?
  • 不,我已经使用了 jpa,但没有使用继承
  • 我已经阅读了一本名为 ejb3 的书中的大致内容,但我仍然不知道该怎么做。我想消除重复,但与其他实体的关系的差异以及它们两者的自动化使得很难判断选择哪种解决方案
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 2011-05-15
  • 2015-08-02
  • 2010-10-27
  • 1970-01-01
相关资源
最近更新 更多