问题标签 [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.
hibernate - 如何使 tablePerHierarchy 为假并使用鉴别器?
这里提出了我需要的问题,但它的答案不能满足我的需要。我有这样的课程:
我想为每个类创建一个表,所以我添加了 tablePerHierarchy 并将其设置为 false,如下所示:
但是当我运行程序并创建一个数据库时,没有鉴别器,我想查询表 A 并找出它是 B 还是 C?我怎样才能在这个策略中添加鉴别器?
hibernate - Hibernate - 使用鉴别器作为类属性
所以我试图将鉴别器值获取到 PesquisaFiltroGeral 类中的字段属性:
但是当我尝试从数据库中获取这种类型的对象时,fieldType 为空。这有什么原因吗?
entity-framework - 来自 Backupfile 的 EF6 代码优先鉴别器
我有一个未使用过 EF 的旧数据库的备份文件。现在我使用 EF 代码创建一个新的数据库,首先使用流利的 api,每个层次都有一个表。这就是为什么我有一个不可为空的鉴别器列。在我的备份文件中没有鉴别器。因此,当我尝试恢复旧的备份文件时,由于尝试将 NULL 值插入鉴别器列而引发异常。
将 NULL 插入鉴别器列时是否可以设置默认值(在 EF 的帮助下)?
编辑:恢复是在数据集的帮助下完成的。我可以将值添加到数据集中,但我不想那样做。
hibernate - 联合继承策略中的多级继承,对层次结构中的每个父级使用鉴别器
在下面考虑我的课程
产品(抽象根类)
Car(另一个扩展 Product 的父类)
Speeder(扩展 Car 的层次结构的最后一个孩子)
当 JPA 使用鉴别器将我的对象模型映射到我的数据模型中时,在单个父子层次结构中使用鉴别器对我来说很好,鉴别器值已正确设置,但是当我添加了另一个层次结构级别时,即Speeder-extends- Car-extends-Product,判别器值或不能正常工作,
如果我只在单个继承(例如子到父)中使用使用鉴别器的联合继承,鉴别器值被正确映射到其受尊重的列中,但现在我添加了另一个层次结构,Speeder 的鉴别器值是放在Product 表的鉴别器列中,而Car表的鉴别器列保留为空值,希望您能理解我在这里要实现的目标,这可能吗?任何解决方法?周围有很多例子,但我找不到一个能说明更深层次结构的例子,像这样的例子加入继承表但是层次更深,周围的例子只有简单的层次,与其他使用这种策略的例子几乎相同。任何帮助或启发将不胜感激。
c# - 使用 TPH 时查询以包含鉴别器值
使用 TPH 时,我有不同的类型从基础继承。我们有一个跨抽象类型查询的搜索。在结果中,我们要显示类型:
IE。抽象车辆
汽车:车辆卡车:车辆
在结果中,我想显示“类型” - 即。“汽车”和“卡车”。
我试图使用 GetType().Name 但这失败了。
这是示例:
c# - 如何使用 Fluent NHibernate 区分父关系的列
我有这个实体关系。
请注意,这UserGroup
是基类,并且我有一些派生类被UserGroup.GroupType
. 我正在使用Single Table Per Class Hierarchy继承映射策略。
流畅的 NHibernate 映射:
这就是我想要实现的目标:
我想让 UserGroupMember 也成为一个基类,并让它在鉴别器上进行UserGroup.GroupType
区分。这可能吗?
这个问题的另一种表述方式是,如果我可以添加以下行,那就太好了:
进入UserGroupMemberMap
java - 使用@Inheritance 和两次相同的@DiscriminatorValue 时依赖JPA 使用子类
我有以下实体:
公司实体位于一个单独的项目中,应该是可扩展的(通常只是一个子类)。
默认情况下,当我使用@Inheritance 时,JPA 只创建一个包含 Company 和所有子类的所有属性的表。为了分离所有这些不同类型的实例,JPA 使用 @DiscriminatorValue ,每个类通常都不同。
我意识到如果我对两个类(实体)使用相同的 @DiscriminatorValue 不会引起问题。这将使它更容易使用:
分离项目可以负责创建公司并存储它们(UI、验证等)。在下一步中,我的项目可以加载这些公司,而无需额外的步骤,我将获得 LargeCompany 对象。
我通过几个集成测试验证了它是否有效(当 entityManager 被清除时),但我不确定我是否真的可以依赖那个“功能”?可能有更好的方法吗?
顺便提一句。我正在使用休眠 4.2.0
工作测试之一:
inheritance - 如何在 MyBatis 中插入判别值?
我的桌子看起来像这样。
这是我的 POJO。
我发现我可以@TypeDiscriminator
像这样选择。
如何@TypeDiscriminator
在插入中使用?我找不到任何好的例子。
grails - 初始化使用 grails 鉴别器配置的子类对象
我有一个父类:
因此,如上所示,类 Child1 和 Child2 扩展了类 A,鉴别器列将用于区分实例。
数据库表如下:
现在我有另一个类 ContainerClass 如下:
现在,当我创建一个 ContainerClass 对象并且在数据库中还有需要获取的数据时,LazyList.decorate 函数无法初始化子对象列表。我得到一个例外如下:
有什么不同的方式可以让这些带有grails鉴别器参数的子类和父类中的整个表映射?
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)。
提前感谢您的任何建议。