我有一个@MappedSuperclass
称为Data的数据库,它是数据库中每个实体的父级。它包含Id等通用属性。然后,我有了一个扩展Data的实体,这也是@MappedSuperclass
由于其子类的通用功能而引起的。我的数据库中的映射是正确的。
这是我的等级制度的一个例子
@MappedSuperclass
Data
| @MappedSuperclass
+- Employee
| | @Entity
| +- FullTimeEmployee
| | @Entity
| +- PartTimeEmployee
| @Entity
+- Store
并且表已正确映射:
FullTimeEmployee
PartTimeEmployee
Store
无论如何,是否在数据库中查询所有作为Employee实例的Employee子类(FullTimeEmployee,PartTimeEmployee),而不在查询中引用子类的名称?
就像是
List<Employee> allEmployees = getAllEmployees();
这个想法是,每当我决定创建Employee的另一个子类(即AllDayEmployee)时,我都不必更改查询以包括姓名。
因此,正如Gregory正确指出的那样,使用不可能@MappedSuperclass
。所以我将其更改为@Entity,因为我想为我使用的每个子类保留一个表InheritanceType.JOINED
。
所以上面的层次是现在
@MappedSuperclass
Data
| @Entity
| @Inheritance(strategy=InheritanceType.JOINED)
+- Employee
| | @Entity
| +- FullTimeEmployee
| | @Entity
| +- PartTimeEmployee
| @Entity
+- Store
表格仍然是:
FullTimeEmployee
PartTimeEmployee
Store
所以现在,为了让所有员工都可以打电话给我:
entityManager.createQuery("from Employee").getResultList();
否,如果您使用@MappedSuperclass
这样做的原因是,当您将基类定义为@MappedSuperclass时,不会为基类生成表,而是将所有属性复制到具体表中。在您的示例中,仅存在FullTimeEmployee,PartTimeEmployee和Store表。
如果要能够查询基类实体,则需要为基类选择其他映射。在基类上使用@Inheritance批注,然后选择3种可能的映射策略之一-SINGLETABLE,TABLE PER CLASS或JOINED
我使用以下列表从控制器填充了JSP中的下拉列表:“” 例如,我使用下拉菜单将5保存为db中thirdPartyOccupationId的值。当我重新加载页面时,值5不是选中的值。 同一段代码正在处理不同的字段,我不知道我错过了什么。 模型类: ReportClass.java 控制器.java 感谢任何指点。
我在mysql数据库中有名为的表,其中存在类、学生姓名等。 我想在jsp中使用select选项,这样当且仅当首先选择class时,在选择class之后,该特定类的所有学生姓名都应该通过从数据库中检索记录自动(动态)显示在另一个select下拉列表中。 在这里我想使用servlet进行数据库连接,并通过通过jsp访问所有数据库记录
我目前在一个论坛网站上工作,有一个向上投票系统。然而,有一些烦人的,可能是句法错误困扰着我。我说的是这段代码。 null 谢谢
命令用于选择数据库,如果想在一个数据库上工作,比如:创建表,查询表,更新,创建存储过程等等,那么首先需要选择一个目标数据库。 示例 假设在MariaDB数据库服务器中,存在有多个数据库,我们必须选择一个特定的数据库。 例如,在下图中显示了多个数据库: 这里我们将使用数据库来创建表等。所以需要使用以下命令。 在执行上面查询语句后,就已经选择数据库。之后就可以在里面创建表等数据对象了。执行上面查询语句
上一章节我们讲了如何创建数据库,接下来我们来讨论如何去选择我们创建的数据库。 数据库的命令窗口 PostgreSQL 命令窗口中,我们可以命令提示符后面输入 SQL 语句: 使用 \l 用于查看已经存在的数据库: 接下来我们可以使用 \c + 数据库名 来进入数据库: 系统命令行窗口 在系统的命令行查看,我么可以在连接数据库后面添加数据库名来选择数据库: pgAdmin 工具 pgAdmin 工具
在MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。 在 MySQL 中, USE 语句用来完成一个数据库到另一个数据库的跳转。 当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格式为: 该语句可以通知 MySQL 把 所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到