问题标签 [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 投票
2 回答
2224 浏览

java - 将泛型类 @MappedSuperclass 应用为 targetEntity.Error:models.Unit.parent 上的 @ManyToOne 引用未知实体:models.GenericHierarchic

我有扩展其他泛型类的泛型类。他们都是@MappedSuperclass. 所以他们在数据库中没有自己的表。它们也是抽象的,所以它们没有任何对象。它们只是我实体的骨架@Entity

我的继承结构:

Generic -> GenericDictionary -> GenericHierarchicalDictionary -> Unit

其中 Unit 是@Entity类并且有对象。

单元实体具有层次结构,这意味着实体与自身有关系,但我为此使用抽象类 ( @MappedSuperclass),所以我想在该抽象类中动态定义它:

我的 GenericHierarchicalDictionary:

但 id dosnt 工作。我收到一个错误:

如果我纠正了那个错误,我应该为 targetEntity 分配一个带有@Entity注释的 java 类,但这不是我想要的。

我想从实体的上下文中动态声明@ManyToOne targetEntity。

我怎样才能做到这一点?请给我一些帮助。

0 投票
2 回答
536 浏览

php - Silex + Doctrine ORM 在@MappedSuperclass 上设置时不会触发事件

我正在将 Silex 与 Doctrine ORM 一起使用,一切正常,但我遇到了一个我无法弄清楚的问题。

我在命名空间 Lpdq\Model\Entity 中有一个实体新闻,它扩展了命名空间 Lpdq\Model 中的另一个类 News,其中包含一些方法和事件前/后事件方法的学说。

我的实体新闻

我的超级班新闻

在我的控制器中,我只是实例化我的实体并持久化/刷新它

我的问题是,当我坚持我的实体时,我的 prePersist/preUpdate 方法没有被调用。 (所以我收到一个错误,因为我创建和更新的属性为空)

如果我将我的实体 News 设置为 HasLifecycleCallbacks 并放置相同的 prePersist/Update 方法,它们就会被触发。

当我在这里时,我想知道我扩展实体以放置 pre/post 和其他方法的方式是好还是坏?

0 投票
1 回答
1194 浏览

php - 如何使用 xml 映射指定什么扩展了学说映射超类中的内容

我试图弄清楚超类映射在 Doctrine2 中是如何工作的,并且我有一些示例可以使用,但我一直在使用 xml 映射来创建我的实体,然后依次创建数据库模式。我找到了一个示例,该示例显示了“实体”标签的“扩展”参数,但当前模式似乎不支持它。

您如何告诉 XML 驱动程序哪些类应该扩展映射的超类?

西南

0 投票
0 回答
538 浏览

java - JPA、MappedSuperclass、列 ID 不能接受 NULL

我有客户、请求等表,每个都有 ID 字段;我现在有一个抽象的@MappedSuperclass,而不是

@Id @GeneratedValue private Long id

字段,并且所有表都使用 @AttributeOverride(name="id", column=@Column(name="ID_CUSTOMER"). 但是现在,当我尝试将客户添加到表中时,出现异常:列 ID_Customer 不能接受 Null 值。当每个表都有自己的 id 字段时,一切正常。怎么了?谢谢

0 投票
1 回答
2880 浏览

hibernate - 使用hibernate在JPA中映射抽象(超类)和子类

我有一个 Abstract 类产品和三个子类HoneyWaxMisc。根据定义,子类扩展了 Product 类并添加了一些额外的字段。我正在使用 JPA 注释来执行映射。课程如下。

产品.java

蜂蜜.java

蜡.java

杂项.java

结果是我在数据库中创建了三个不同的表。但我的问题是,如果我想获得所有可用的产品,那么我的猜测是我将不得不查询三个不同的表。这种方法对我来说似乎不合适。正确的方法不应该是我应该有一个列出所有产品的产品表吗?但是每个产品可以属于不同的类别(蜂蜜、蜡或杂项),这意味着不同的列并且可以包含空值。

有人可以请教我吗?非常感谢。

0 投票
1 回答
819 浏览

java - “没有为 play.data.Form 类找到序列化程序”-助手类表单绑定异常

我有一个继承结构,其中 SubtaskGroupA 和 SubtaskGroupB 都继承自 @MappedSuperclass 子任务,并允许用户提交一个组的多个子任务。我使用带有字段列表子任务的辅助类 SubtaskList。这个助手类的一个表单被渲染,用户将输入信息(使用 scala 的@select-helper)到所有子任务并提交表单。使用绑定输入时,Form<SubtaskList> form = form(SubtaskList.class).bindFromRequest();我收到以下异常:

所有字段都是私有的,具有公共 getter/setter。在所有 SubtaskGroupA 的列表上调用 toJson 时,我得到了同样的异常。

感谢所有帮助。

编辑:我猜@JsonIgnore Annotation 有点帮助,但现在我在 bindFromRequest() 上收到了一个不同的异常:

`

0 投票
3 回答
10221 浏览

java - 使用 JPA 覆盖在 @MappedSuperclass 中定义的 @Id

我有一个 AbstractEntity 类,它由我的应用程序中的所有实体扩展,基本上充当标识符提供者。

我现在有一个案例,我需要为我的几个实体类定义一个单独的 ID,因为它们需要有一个自定义序列生成器。如何做到这一点?

0 投票
2 回答
2071 浏览

java - JPA @MappedSuperclass 子类的不同 Id 计数器

我有一个@MappedSuperclass,它是我所有实体的基类(@Entity,通过多个子类直接或间接)。

Id 的生成如上所示。

我的问题是每个@Entity 的@Id-counter 都是相同的。事实上,这不是一个大问题,因为它需要一段时间才能达到 Long.MAX_VALUE。但是达到最大值要容易得多,因为所有实体只有一个计数器。如何使用不同的@Id-counter 而无需将上述代码添加到所有@Entity-classes?

(如果这对您的回答很重要:我使用的是 H2 数据库。)

0 投票
2 回答
729 浏览

php - 在 Zend 框架 2 中使用 MappedSuperclass 的 Doctrine 2 多对多

我是 Doctrine2 的新手,并试图为以下数据库结构创建实体: 在此处输入图像描述

我想将所有机器部件作为一个数组放在机器类的一个属性中。我试过这个:

中间实体/表(如等)在哪里,但它失败了MachineHasPart@MappedSuperclassmachineHasCylinder

执行 'SELECT FROM machineHasPart t0' 时发生异常

我应该重组我的数据库以在这里使用 ORM 吗?或者我的情况有解决方案吗?

0 投票
1 回答
203 浏览

php - Doctrine :: 无法从子实体中读取

我有一个实体,BaseValue作为映射的超类。第二个实体,称为Field,正在映射这个超类。

我可以存储它,并且子类的值BaseValue存储在正确的表中。

但是,如果我尝试阅读它们,则会收到此错误:

执行 'SELECT t0.id AS id_1, t0.iid AS iid_2, t0.lid AS lid_3, t5.fid AS fid_4 FROM fields t0 LEFT JOIN BaseValue t5 ON t5.fid = t0.id WHERE t0.iid = ?带参数 [1]:

SQLSTATE [42S02]:未找到基表或视图:1146 表“testproject.BaseValue”不存在

当然它不存在,因为它没有价值。这些都存储到子实体的表中。

派生实体(映射超类):

其中一个孩子:

与其中一个孩子有关系的实体:

控制器,读取:

在这里它崩溃了:

日期:
/var/www/html/myproject/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php :53

Meldung:
执行 'SELECT t0.id AS id_1, t0.iid AS iid_2, t0.lid AS lid_3, t5.fid AS fid_4 FROM pimfields t0 LEFT JOIN BaseValue t5 ON t5.fid = t0.id WHERE t0 时发生异常。 iid = ?' 带参数 [1]:

SQLSTATE [42S02]:未找到基表或视图:1146 表“myproject2.BaseValue”不存在