问题标签 [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.
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。
我怎样才能做到这一点?请给我一些帮助。
php - Silex + Doctrine ORM 在@MappedSuperclass 上设置时不会触发事件
我正在将 Silex 与 Doctrine ORM 一起使用,一切正常,但我遇到了一个我无法弄清楚的问题。
我在命名空间 Lpdq\Model\Entity 中有一个实体新闻,它扩展了命名空间 Lpdq\Model 中的另一个类 News,其中包含一些方法和事件前/后事件方法的学说。
我的实体新闻
我的超级班新闻
在我的控制器中,我只是实例化我的实体并持久化/刷新它
我的问题是,当我坚持我的实体时,我的 prePersist/preUpdate 方法没有被调用。 (所以我收到一个错误,因为我创建和更新的属性为空)
如果我将我的实体 News 设置为 HasLifecycleCallbacks 并放置相同的 prePersist/Update 方法,它们就会被触发。
当我在这里时,我想知道我扩展实体以放置 pre/post 和其他方法的方式是好还是坏?
php - 如何使用 xml 映射指定什么扩展了学说映射超类中的内容
我试图弄清楚超类映射在 Doctrine2 中是如何工作的,并且我有一些示例可以使用,但我一直在使用 xml 映射来创建我的实体,然后依次创建数据库模式。我找到了一个示例,该示例显示了“实体”标签的“扩展”参数,但当前模式似乎不支持它。
您如何告诉 XML 驱动程序哪些类应该扩展映射的超类?
西南
java - JPA、MappedSuperclass、列 ID 不能接受 NULL
我有客户、请求等表,每个都有 ID 字段;我现在有一个抽象的@MappedSuperclass,而不是
@Id
@GeneratedValue
private Long id
字段,并且所有表都使用
@AttributeOverride(name="id", column=@Column(name="ID_CUSTOMER")
. 但是现在,当我尝试将客户添加到表中时,出现异常:列 ID_Customer 不能接受 Null 值。当每个表都有自己的 id 字段时,一切正常。怎么了?谢谢
hibernate - 使用hibernate在JPA中映射抽象(超类)和子类
我有一个 Abstract 类产品和三个子类Honey、Wax和Misc。根据定义,子类扩展了 Product 类并添加了一些额外的字段。我正在使用 JPA 注释来执行映射。课程如下。
产品.java
蜂蜜.java
蜡.java
杂项.java
结果是我在数据库中创建了三个不同的表。但我的问题是,如果我想获得所有可用的产品,那么我的猜测是我将不得不查询三个不同的表。这种方法对我来说似乎不合适。正确的方法不应该是我应该有一个列出所有产品的产品表吗?但是每个产品可以属于不同的类别(蜂蜜、蜡或杂项),这意味着不同的列并且可以包含空值。
有人可以请教我吗?非常感谢。
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() 上收到了一个不同的异常:
`
java - 使用 JPA 覆盖在 @MappedSuperclass 中定义的 @Id
我有一个 AbstractEntity 类,它由我的应用程序中的所有实体扩展,基本上充当标识符提供者。
我现在有一个案例,我需要为我的几个实体类定义一个单独的 ID,因为它们需要有一个自定义序列生成器。如何做到这一点?
java - JPA @MappedSuperclass 子类的不同 Id 计数器
我有一个@MappedSuperclass,它是我所有实体的基类(@Entity,通过多个子类直接或间接)。
Id 的生成如上所示。
我的问题是每个@Entity 的@Id-counter 都是相同的。事实上,这不是一个大问题,因为它需要一段时间才能达到 Long.MAX_VALUE。但是达到最大值要容易得多,因为所有实体只有一个计数器。如何使用不同的@Id-counter 而无需将上述代码添加到所有@Entity-classes?
(如果这对您的回答很重要:我使用的是 H2 数据库。)
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 :53Meldung:
执行 '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”不存在