问题标签 [single-table-inheritance]
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.
castle-activerecord - 在 Castle Activerecord 中同时使用类表和单表继承?
在 Castle Activerecord 中(在 NHibernate 之上),是否可以全局使用类表继承,并在部分继承树上使用单表继承?我想做类似的事情
这样所有常见的“东西”(如名称、描述等)都在“模型”表中,但我仍然可以在“容器”表中使用 STI。或者这是浪费时间,我应该去 STI 做整个事情吗?
在此先感谢,吉姆
ruby-on-rails - 单表继承:层次结构中的所有类都必须具有相同的属性吗?
我有以下
随着迁移
默认情况下,描述属性将在 Item 和 Talk 类上可用。有没有办法限制属性,以便只对 Talk 类可用?
php - 推进单表继承问题
我有一个名为“talk”的表,它在我的 schema.xml 文件中定义为抽象。
它生成 4 个对象(每个类键 1 个):Comment、Rating、Review、Checkin
它也生成了TalkPeer,但我无法让它生成其他4个对等点(CommentPeer、RatingPeer、ReviewPeer、CheckinPeer),所以我手动创建了它们,并让它们继承自从BaseTalkPeer继承的TalkPeer.php。然后我在每个对等点中实现了 getOMClass()。
问题是,当我使用 4 个对等方进行查询时,它们会返回所有 4 种类型的对象。也就是说,ReviewPeer 将返回访问、评级、评论和评论。
例子:
这将返回值 > 5 的所有评论、评分、评论和签到。
ReviewPeer 应该只返回 Review 对象,并且无法弄清楚如何执行此操作。
我是否真的必须通过并更改所有标准才能手动指定类键?这似乎有点毫无意义,因为 Peer 名称已经不同了。我不想自定义每个 Peer。我应该能够自定义TalkPeer,因为它们都继承自它......我只是不知道如何。
我尝试仅在 TalkPeer 中更改 doSelectStmt,以便它自动将 CLASSKEY 限制添加到 Criteria。它几乎可以工作,但我得到一个:致命错误:无法在第 503 行的 /models/om/BaseTalkPeer.php 中实例化抽象类 Talk。第 503 行在 BaseTalkPeer::populateObjects() 中,是下面的第 3 行:
文档谈到了覆盖 BaseTalkPeer::populateObject( ) 。我觉得这是我的问题,但即使在阅读了源代码之后,我仍然无法弄清楚如何让它工作。
这是我在 TalkPeer::doSelectStmt 中尝试过的:
以下是 ReviewPeer 中我的 getOMClass 方法的示例:
这是我的架构的相关位:
PS - 不,我不能从 1.3 升级到 1.4。有太多代码需要重新测试
ruby-on-rails - 带有单表继承问题的 Rails 和 Hobo
db:setup
使用干净的数据库运行我的 Hobo 项目时出现错误。我有两个模型,A 和 B,其中 B 通过单表继承扩展 A。创造一切都有效。但是如果我从一个新的数据库开始,rake 会失败并出现错误:
这是我重现此过程的步骤。首先,创建 Hobo 应用程序:
创建第一个模型A
:
设置 database.yml,生成并执行迁移:
创建第二个模型B
:
编辑B
模型以扩展A
:
生成并运行迁移:
瞧。一切正常。现在,如果我删除所有表并运行db:setup
,它会失败:
按照Ruby on Rails Single Table Inheritance (STI) 和 unit test problem (with PostgreSQL)的建议,我尝试删除test/fixtures/as.yml
and test/fixtures/bs.yml
,但这没有帮助。
流浪汉 0.9.103
轨道 2.3.5
耙子 0.8.7
jruby 1.4.0RC1
有什么建议么?
ruby-on-rails - has_many 具有多级层次结构和单表继承
在我的 Rails 应用程序中,我有以下类型的多级层次结构:
然后我有一个引用中间级别的类,如下所示:
在这个简化的示例中,我为车辆表提供了一个类型列以启用单表继承。此外,它包含一个garage_id 列,以启用has_many 关系。当我创建一个新车库并添加汽车和公共汽车时,所有这些都按预期添加到数据库中。但是,当我稍后检索车库对象并检查 road_vehicles 集合时,它是空的。谁能告诉我我做错了什么?
spring - Spring:使用@Controller注解的控制器继承
我希望能够在我的 Spring 应用程序中创建一个基本控制器,除其他外,它可以确定用户是否是注册用户。该基本控制器遵循模板设计模式,将包含控制器子类将实现的抽象受保护方法。
抽象方法将传递给它一个用户实例,注册或其他。但是,我不知道我将如何做到这一点,因为似乎通过纯粹使用 @Controller 注释来使用控制器,每个控制器都可以自由地定义他们喜欢的请求处理方法。
创建某种注入到每个控制器中并用于验证用户的用户服务类是解决此问题的一种方法吗?这就引出了一个问题(至少对我而言)这样的控制器如何获得 HttpServletRequest 或 Session 对象?
谢谢。
ruby-on-rails - Rails STI 使用一种形式
我有一个表单,允许我将不同格式的文件添加到流中。因此,一个流由许多文件组成,这些文件是 XML 文件,但基本上具有不同的模式。我有一种表单允许用户添加他们想要的任何文件,我正在使用 STI(当数据已经在表中时效果很好),我的麻烦是将数据添加到表中。
该表单有 1 个输入字段,只有一个 file_field 允许用户选择他们要上传的文件。由于我只有一种形式,我无法实例化正确的对象,我必须以编程方式进行......而且我不知道该怎么做。
我是否只是(或者我可以)添加一个包含可能类型的下拉列表,并调用该字段“类型”,以便在提交表单时,rails 将实例化对象的写入类型,因为提供了类型属性?
对此的最佳做法是什么.. 我正在运行 rails 2.3.4。
linq-to-sql - linq to sql和继承问题
有谁知道如何获取特定类型的继承代码(Linq to sql 中的单表继承)?
当我创建一个新实体 B(从 A 继承)时,我想在 A 中编写一些代码,这对从 A 继承的所有对象都有效。
但是,当你创建一个新的实体B时,它的继承码还没有填写。有没有什么方法可以根据类型获取继承码?我知道 Table 类中有一个 metaTable 属性,但它是私有的,并且该类是密封的。
ruby-on-rails - 从多个不同的 Rails 模型创建“提要”
我正在开发一个具有几种不同模型(票证、帖子、报告等)的应用程序。每个模型中的数据都不同,我想从所有这些模型中创建一个“提要”,以全面显示 10 个最新条目(所有数据的混合)。
解决此问题的最佳方法是什么?当为用户分配工单或发布新报告时,我应该创建一个新的 Feed 模型并写入该表吗?我们也一直在寻找 STI 来构建模型引用表,或者只是创建一个聚合数据的类方法。不知道哪种方法最有效...
ruby-on-rails - 如何使用 Authlogic 和 STI 获得动作级别保护?
鉴于如何将 before_filter 用于单个用户分类已有详细记录,因此我在为多种用户类型获得操作级保护时遇到了麻烦。让我解释:
我有这样的东西...
在 GuardiansController 中,我只想允许管理员的标准操作,但所有其他操作都应该需要 Guardian。所以我尝试了这个...
最终进行递归重定向。一定会有更好的办法?