问题标签 [mappedsuperclass]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
239 浏览

symfony - 如何使用 Doctrine2 在扩展实体中添加索引?

我正在使用 Doctrine2 来扩展实体。主要实体是这样定义的:

虽然扩展实体是这样开始的

现在我想向结果表“erp_articoli”添加另一个索引,但我不知道该怎么做。标签@ORM\Table(indexes={@Index(name="search_codfamweb", columns={"codice_famiglia_web"})})不会做任何事情(甚至不会出错)......如何实现我的目标?

0 投票
0 回答
77 浏览

spring - MappedSuperclass 将所有子实体映射到一个子实体

我有TranslationBase基础抽象类和两个子类 [entities]:CountryTranslation 和 RegionTranslation,如下所示:

翻译库:

国家翻译

区域翻译

和 TranslationBasePK :

在 DB 上,我发现 CountryTranslation 和 RegionTranslation 表中的 id 列对 Country 表 id 的引用!

我希望 CountryTranslation 引用 Country 和 RegionTranslation 的 id 来引用 Region 类的 id。

注意:国家和地区有 @Id 字段名为 id;

0 投票
1 回答
409 浏览

php - Doctrine - OneToOne 关系不适用于扩展 MappedSuperclass

我尝试使用@MappedSuperclass。它适用于简单变量(int、string...)和 OneToMany/ManyToOne 关系。但是 OneToOne 关系不起作用。

我有两个具有 OneToOne 关系的 MappedSuperclass:_SiteUser

_SiteUserTo

这是我扩展这些 MappedSuperclass 的 2 类:SiteUser

站点用户至

当我从 MappedSuperclass(_SiteUser 和 _SiteUserTo)生成实体时,我得到了一个名为“users_to”的表,其中包含 id 和 user_id。但是当我从其他类(SiteUser 和 SiteUserTo)生成实体时,它会创建只有 id 字段的表“users_to”。我不知道为什么...

如果我像这样更新我的 SiteUser 类:

和 SiteUserTo 喜欢这样:

我遇到了同样的问题,user_id表中没有字段users_to。但是“测试”字段在表格site_users和表格中创建得很好users_to......

0 投票
0 回答
505 浏览

symfony - 在 Doctrine 中使用映射的超类覆盖多对多关联

CommonResource我想在映射的超类和实体之间建立多对多的关联Author。我们正在使用学说手册提供的关于这个主题的语法:关联覆盖学说。但是当我用我验证学说模式时,php bin/console doctrine:schema:val我得到以下错误:

我有一个映射的超类CommonResource

和一个实体Author

以及一些扩展映射超类的实体,例如:

我是否正确使用了映射超类的关联覆盖的学说语法,或者有什么问题?我将不胜感激任何帮助 :)

0 投票
1 回答
265 浏览

spring - 公共 JPA 基本实体分离主键序列

我有一个从BaseEntity扩展的UserAuthenticationEntity

所有未来的实体都将扩展 BaseEntity类。

是否有可能所有实体都从BaseEntity类继承id属性但具有单独的序列来生成主键?

我知道这是一个有线场景,但我认为拥有一个基实体类是为所有实体类定义id属性的好地方,但不能使用不同的序列是一种交易破坏者。不确定是否可以完成。

也欢迎实体类的任何替代/更好的设计。

0 投票
0 回答
98 浏览

java - 如何在 JPA 实体中对继承进行最佳建模

我想知道如果实体不共享主键,那么在 JPA 实体中使用继承的最佳做法是什么,特别是如果数据库已经存在并且不能轻易更改。

假设我们有一个员工数据库,就像Oracle HR 示例中使用的那样。现在,该数据库不太现实。工资通常会随着时间而变化,我们将跟踪工资的变化情况。例如,一份工作合同可能会规定,每年 12 月,员工都会与他们的经理会面,讨论下一年的工资。

因此,我们将从 HR.EMPLOYEES 中删除薪水字段并创建一个新表 HR.SALARIES:

主键将由 EMPLOYEE_ID 和 VALID_FROM 组成。

因此,现在如果 Pat 在 12 月遇到她的经理 Michael 并同意新的薪水,我们将在 HR.SALARIES 中插入一条新记录。

现在,让我们假设 HR 部门在输入新数据时出错,因此 Pat 在 1 月份得到了错误的薪水。她将问题报告给她的老板,他联系人力资源部门,他们更正了 HR.SALARIES 中的记录。她将在 2 月份的付款中收到缺失的金额。

年底,公司进行审计。审计员想知道为什么 1 月份发给 Pat 的工资支票与数据库中的工资条目不匹配。为了确保审计人员始终能够理解系统做出某些决定的原因(例如开出一定数量的支票),我们需要保留更改历史记录。

将 HR.SALARIES 更改为:

添加新表 HR.SALARIES_CHANGE_HISTORY:

主键将由 EMPLOYEE_ID、VALID_FROM 和 CHANGE_DATE 组成。

出于性能原因,我们将更改历史记录保存在单独的表中:我们的 HR 系统几乎不会读取它。

现在我们终于来回答我的问题了。我们如何在 JPA 中最好地为这个数据库建模,我们能否以某种方式利用继承,因为表 HR.SALARIES 和 HR.SALARIES_CHANGE_HISTORY 是相同的,除了 CHANGE_DATE 是 HR.SALARIES_CHANGE_HISTORY 中主键的一部分。

JavaEE 中有 @MappedSuperclass,一开始听起来不错,但在使用 @MappedSupperclass 的类层次结构中不可能使用不同的主键(请参阅JSR-000338 JavaTM Persistence 2.1,第 2.4 节JSR 220:Enterprise JavaBeansTM,版本3.0,第 2.1.4 节)。

有什么方法可以避免 SALARIES 和 SALARIES_CHANGE_HISTORY 的实体 bean 中的代码重复?

0 投票
0 回答
184 浏览

java - MappedSuperclass - 更改子类中的 SequenceGenerator 而不在超类上使用 @GeneratedValue

我有一个基类:

未使用 @GeneratedValue,因为 id 是使用 BackendSession 生成的

这个类有很多继承,所以不能改变它!

我的子类:我试图覆盖 getId 方法

但是我在 IdentifierGenerationException 上失败了,我做错了什么?

0 投票
1 回答
245 浏览

spring - Spring - JPA 在抽象类中加入抽象类

我对 JPA 继承有疑问。数据库模型也是专门搭建的。它包含几个具有相同属性的表(这些表是故意按国家/地区切割的),并且所有这些表都连接到另一个表(OneToOne)。

以下是数据模型的示例:usa_user、Germany_user、austria_user。所有这些表都具有相同的属性(id、name、address)。现在地址也是根据国家建立的,例如usa_address、Germany_address、austria_address。

现在我不知道或有问题,我已经正确映射了很长时间。我有以下内容:

But unfortunately this does not work. Every time I start it JPA notices that it can't map the Entities Address - User (which is understandable because they are not entities but abstract classes). What would be the best way to solve this? I want to avoid that I have to list the attributes in all these entities because it would be redundant.

The goal is to find out how I can use a @MappedSuperclass in a @MappedSuperclass.

0 投票
2 回答
280 浏览

java - “无法执行保存操作:org.hibernate.exception.DataException:无法执行语句”使用 OpenXava?

我对 Java 很陌生,需要一些帮助。我使用 OpenXava 创建了一个 @MappedSuperclass “与会者”。

然后,我将其扩展为另外两个类“员工”和“参与者”。

下面是两个 @Embedded 元素的代码:

地址:

医疗信息:

除了参加者类,我省略了所有的 getters() 和 setters()。

我将应用程序作为 Java 应用程序运行,它一直工作到我尝试输入和保存记录为止。当我单击“保存”时,系统会提示我:

在 OpenXava 的控制台中仔细检查后,我发现以下内容:

我在这里没有提到的应用程序中的其他实体,允许我保存新记录。然而,这些实体与提供的代码没有链接或相关。

请帮忙。

0 投票
0 回答
61 浏览

java - Java Spring @MappedSuperclass 字段作为子类中的@Id 字段

我有以下超类,它将被许多类扩展。它的一个属性foreignKey 将是继承类之一的@Id。

超类:

继承类:

当我尝试构建时,我得到了错误:

有没有办法做到这一点?