问题标签 [discriminator]

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 投票
1 回答
432 浏览

hibernate - 如何使 tablePerHierarchy 为假并使用鉴别器?

这里提出了我需要的问题,但它的答案不能满足我的需要。我有这样的课程:

我想为每个类创建一个表,所以我添加了 tablePerHierarchy 并将其设置为 false,如下所示:

但是当我运行程序并创建一个数据库时,没有鉴别器,我想查询表 A 并找出它是 B 还是 C?我怎样才能在这个策略中添加鉴别器?

0 投票
1 回答
366 浏览

hibernate - Hibernate - 使用鉴别器作为类属性

所以我试图将鉴别器值获取到 PesquisaFiltroGeral 类中的字段属性:

但是当我尝试从数据库中获取这种类型的对象时,fieldType 为空。这有什么原因吗?

0 投票
1 回答
320 浏览

entity-framework - 来自 Backupfile 的 EF6 代码优先鉴别器

我有一个未使用过 EF 的旧数据库的备份文件。现在我使用 EF 代码创建一个新的数据库,首先使用流利的 api,每个层次都有一个表。这就是为什么我有一个不可为空的鉴别器列。在我的备份文件中没有鉴别器。因此,当我尝试恢复旧的备份文件时,由于尝试将 NULL 值插入鉴别器列而引发异常。

将 NULL 插入鉴别器列时是否可以设置默认值(在 EF 的帮助下)?

编辑:恢复是在数据集的帮助下完成的。我可以将值添加到数据集中,但我不想那样做。

0 投票
0 回答
1286 浏览

hibernate - 联合继承策略中的多级继承,对层次结构中的每个父级使用鉴别器

在下面考虑我的课程

产品(抽象根类)

Car(另一个扩展 Product 的父类)

Speeder(扩展 Car 的层次结构的最后一个孩子)

当 JPA 使用鉴别器将我的对象模型映射到我的数据模型中时,在单个父子层次结构中使用鉴别器对我来说很好,鉴别器值已正确设置,但是当我添加了另一个层次结构级别时,即Speeder-extends- Car-extends-Product,判别器值或不能正常工作,

产品表 汽车表 速度表

如果我只在单个继承(例如子到父)中使用使用鉴别器的联合继承,鉴别器值被正确映射到其受尊重的列中,但现在我添加了另一个层次结构,Speeder 的鉴别器值是放在Product 表的鉴别器列中,而Car表的鉴别器列保留为空值,希望您能理解我在这里要实现的目标,这可能吗?任何解决方法?周围有很多例子,但我找不到一个能说明更深层次结构的例子,像这样的例子加入继承表但是层次更深,周围的例子只有简单的层次,与其他使用这种策略的例子几乎相同。任何帮助或启发将不胜感激。

0 投票
1 回答
1083 浏览

c# - 使用 TPH 时查询以包含鉴别器值

使用 TPH 时,我有不同的类型从基础继承。我们有一个跨抽象类型查询的搜索。在结果中,我们要显示类型:

IE。抽象车辆

汽车:车辆卡车:车辆

在结果中,我想显示“类型” - 即。“汽车”和“卡车”。

我试图使用 GetType().Name 但这失败了。

这是示例:

0 投票
1 回答
1991 浏览

c# - 如何使用 Fluent NHibernate 区分父关系的列

我有这个实体关系。

请注意,这UserGroup是基类,并且我有一些派生类被UserGroup.GroupType. 我正在使用Single Table Per Class Hierarchy继承映射策略。

流畅的 NHibernate 映射:

这就是我想要实现的目标:
我想让 UserGroupMember 也成为一个基类,并让它在鉴别器上进行UserGroup.GroupType区分。这可能吗?

这个问题的另一种表述方式是,如果我可以添加以下行,那就太好了:

进入UserGroupMemberMap

0 投票
1 回答
137 浏览

java - 使用@Inheritance 和两次相同的@DiscriminatorValue 时依赖JPA 使用子类

我有以下实体:

公司实体位于一个单独的项目中,应该是可扩展的(通常只是一个子类)。

默认情况下,当我使用@Inheritance 时,JPA 只创建一个包含 Company 和所有子类的所有属性的表。为了分离所有这些不同类型的实例,JPA 使用 @DiscriminatorValue ,每个类通常都不同。

我意识到如果我对两个类(实体)使用相同的 @DiscriminatorValue 不会引起问题。这将使它更容易使用:

分离项目可以负责创建公司并存储它们(UI、验证等)。在下一步中,我的项目可以加载这些公司,而无需额外的步骤,我将获得 LargeCompany 对象。

我通过几个集成测试验证了它是否有效(当 entityManager 被清除时),但我不确定我是否真的可以依赖那个“功能”?可能有更好的方法吗?

顺便提一句。我正在使用休眠 4.2.0


工作测试之一:

0 投票
0 回答
876 浏览

inheritance - 如何在 MyBatis 中插入判别值?

我的桌子看起来像这样。

这是我的 POJO。

我发现我可以@TypeDiscriminator像这样选择。

如何@TypeDiscriminator在插入中使用?我找不到任何好的例子。

0 投票
1 回答
474 浏览

grails - 初始化使用 grails 鉴别器配置的子类对象

我有一个父类:

因此,如上所示,类 Child1 和 Child2 扩展了类 A,鉴别器列将用于区分实例。

数据库表如下:

现在我有另一个类 ContainerClass 如下:

现在,当我创建一个 ContainerClass 对象并且在数据库中还有需要获取的数据时,LazyList.decorate 函数无法初始化子对象列表。我得到一个例外如下:

有什么不同的方式可以让这些带有grails鉴别器参数的子类和父类中的整个表映射?

0 投票
0 回答
419 浏览

mongodb - Grails、GORM、MongoDB:鉴别器列值被忽略

我正在做一个 Grails 项目,我想使用 GORM 来读取/写入 MongoDB 中的文档。我有一个我想要实现的特定场景,我已经尝试了 2-3 天来完成这项工作,但我无法找出我做错了什么。我已经阅读了 Grails 文档和网络上的许多相关帖子,但仍然一无所获。

为了简单起见,我正在研究一个足够简单的场景,如下所示:

我有 4 个域类:

某人.groovy

动物.groovy

Dog.groovy

Cat.groovy

现在,在一个名为 的服务类中CrudService,我有一个方法,例如foo(),在该方法中我创建了一个新Someone对象,并将其保存到我的 Mongo 数据库中。

当我检查我的 mongoDB 集合以查看保存的内容时,我看到:

因此,如您所见,文档已保存,但鉴别器列名(和值)被完全忽略。该文档以"_class"列名(这是默认的鉴别器列名)的值和类名(在本例中为Dog)作为其值保存。

谁能帮助我并告诉我我在这里做错了什么?

GORM 的鉴别器功能是否有可能适用于 RDBMS 但不适用于 NoSQL 数据库?

(目前我也在研究 Morphia,看看它是否可以为我的问题提供解决方案,但我更喜欢使用 GORM,因为它是 Grails 的默认 ORM)。

提前感谢您的任何建议。