我对JPA中的继承是新手。我不知道如何查询这样的内容:
让我们假设一个联接继承映射,其中a是一个具有'id'和'name'的实体。还有从A继承的实体A1和A2。A1提供字段'int1',A2提供字段'int2'
select a.name,
case type(a)
when A1 a1 then a1.int1
when A2 a2 then a2.int2
end as int
from A a
你可以用联合。
select a1.name as name, a1.int1 as id
from A1 a1
UNION
select a2.name as name, a2.int2 as id
from A2 a2
我很难启动服务器,因为它抱怨在查询中找不到继承的属性。 我的问题是,既然我试图将它移动到继承模型(联接),我如何在带注释的查询中引用继承的属性? (注意,该属性是私有可见性,在BaseContent中使用public getter/setter) 谢谢。
问题内容: 嗨,我是JPA的新手,我在理解它如何处理继承方面遇到困难。 我有一个需要解决的特定问题,而无需更改数据库方案,但是如果您找不到解决方案,我将感谢使用其他数据库方案的解决方案建议(欢迎使用Hibernate / TopLink解决方案)。 如果我不清楚或您需要更多信息,请告诉我。提前致谢! 我有这个数据库: 到目前为止,我的实体看起来像这样: 目前,我能够持久地保存Fruit对象。.仅当
主要内容:连接策略示例在连接策略中,为每个实体类生成一个单独的表。 每个表的属性都与主键连接。 它消除了字段字重复的可能性。 以下语法表示连接的策略: - 连接策略示例 在这个例子中,我们将员工分为活跃员工和退休员工。 因此,子类和继承父类的和字段。 现在,按照以下步骤创建JPA项目 - 第1步: 在包下创建一个根实体类并指定所有必需的属性和注释。 文件:Employee.java - 第2步: 在包下创建实体类(它是
主要内容:JPA继承注解,JPA继承策略继承是面向对象编程语言的一个关键特性,其中子类可以获取其父类的属性。 此功能增强了代码的可重用性。 关系数据库不支持继承机制。 因此,Java Persistence API(JPA)用于映射关系数据库模型中的继承关键特性。 JPA继承注解 以下是最常用的JPA继承注释 - - 此注解应用于根实体类以定义继承策略。 如果没有使用此注释定义策略类型,那么它遵循单表战略。 - 此注释应用于由其子类继承
我有一张从班级媒体继承的班级CD: 光盘: 媒体: JPA 自动生成一个外键名称,我想用我想要的名称覆盖它: 03-10 18:16:58.174[main]调试org.hibernate。SQL-alter table cd添加约束FK_ehd468g2cptgh6bq6sxe75xlf外键(id)引用媒体(id) 怎么做?我试过: 和 但它不起作用。 下面是 sql 生成的创建表: 我想: