问题标签 [icriteria]
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.
nhibernate - NHibernate L2 Cache - 流畅的 nHibernate 配置
我已经设法在 FHN 中为 Get\Load 配置 L2 缓存,但它不适用于使用 ICriteria 接口配置的查询 - 它不会缓存这些查询的结果。
有谁知道为什么?
配置如下:
标准:
实体映射:
以及数据库属性的会话工厂配置:
干杯
AWC
nhibernate - NHibernate:如何使用 Criteria API 排除属于连接的一部分的类
我仍然是 Hibernate 的新手,并且正在尝试将它用于我继承的网站。不幸的是,这意味着有时数据库模式并不总是有意义。
话虽如此,我正在尝试使用 Criteria API 构建以下 HQL 查询
上面的 HQL 语句生成 SQL,它将仅选择并返回 TableB,这正是我想要发生的。但是,使用如下所示的 Critera API 语句,生成的 SQL 语句会选择 TableB 和 TableA 的字段。
在一个完美的世界中,我可以更新数据库模式以使其更有意义,但可惜我不能。对此的任何帮助将不胜感激。
nhibernate - 了解 NHibernate 的 ICriteria
请有人能用英语解释以下代码的作用吗?
nhibernate - 使用 ICriteria 接口在 NHibernate 中选择不在集合中的对象
在我的系统中,用户拥有 0 个或多个类别。这是我的模型类的简化版本:
我现在想创建一个 ICriteria 查询来选择所有未分配给用户的类别,但我被卡住了。理想情况下,我不想创建从 Category 到 User 的导航属性,但是根据我对 NHibernate 的初学者知识,这是我能看到的唯一解决方案。
是否有一个 ICriteria 查询可以对当前数据模型类执行此操作?
谢谢你的帮助。
nhibernate - NHibernate:实体的查询条件,可能是同一查询中的子类
这是我的 2 个实体的设置:
这是他们的映射的样子:
这就是设置,2 个实体,一个是另一个的连接子类。我有一个搜索框架,它从表单中获取任意数量的条件,然后将适当的条件应用于查询,然后返回结果。
现在假设在这种情况下我有一个表单字段“姓名”——我想通过查看他们的姓名是否与 Person 的 Name 属性匹配来带回所有人,无论是普通的 Persons 还是特殊类别的生物 Immortals,但是对于不朽者,如果他们的 DarkName 与表格中给出的内容匹配,我也想将其视为匹配项。
所以这是我的困境,我该怎么做?我能用 NHibernate 的 ICriteria 做的最好的事情是在 Immortal 上进行子查询以检查那里的名称,然后查看根 Person id 是否在该子查询中。但是,在处理包含 10 多个数千人的表时,这种获取结果的方法非常低效,在我的现实世界中甚至会导致请求超时(30 秒以上)。
我也愿意在 HQL 中执行此操作,因为我想我希望在 Immortal 上进行外部连接以检查该字段,但我无法让 HQL 对任意属性上的 2 个不同实体进行连接——连接至我知道必须基于您的映射中的直接关联。例如,这是我希望看到的:
你说什么stackoverflow?
nhibernate - NHibernate 实体松耦合
假设我有一个名为 MyItem 的实体。它可以包含在许多“父母”中,例如 SomeCollection 和 SomeOtherCollection。因为它可以包含在许多父母中,并且由于我不希望 MyItem 了解父母,所以我希望 MyItem 中没有任何属性引用父母。
而且由于像 SomeCollection 这样的父级可以包含许多 MyItem,我觉得我需要进行某种分页来从父级获取子级。这将使我无法在 SomeCollection 中拥有引用 MyItems 的属性。无论是否延迟加载,它总是“全有或全无”(对吧?)。
不过,我肯定需要在 MyItem 实体和它们的父实体之间进行一些引用,以数据库中映射表的形式。
问题:
- 如何为此创建映射?我可以有映射,还是应该将关系保留在业务逻辑中?
- 如何查询 SomeCollection 中存在哪些 MyItem 实体?我可以只使用 ICriteria 访问一次数据库吗?
tsql - 如何使用 NHibernate 的 ICriteria 进行分组、获取关联和 T-SQL 函数
我想创建以下 T-SQL 语句:
NHibernates ICriteria可以做到这一点吗?
如何使用 Month-T-SQL-Function?
我必须手动加入还是 ICriteria API 知道当我使用propetyName 'SalesmanArticle.Article.Goodsgroup.Description' 时它必须加入文章和货物组?
编辑:
现在我在这里写了这段代码:
但是会抛出 AdoException:
无法执行查询 [ SELECT sum(this_.Amount) as y0_, sum(this_.Cost) as y1_, goodsgroup2_.Description as y2_, MONTH([Date]) FROM [SalesmanArticle] this_ inner join [Article] article1_ on this_。 ArticleId=article1_.ArticleId 内连接 [GoodsGroup] goodsgroup2_ on article1_.GoodsGroupId=goodsgroup2_.GoodsGroupId GROUP BY goodsgroup2_.Description, MONTH([Date]) ]
[SQL: SELECT sum(this_.Amount) as y0_, sum(this_.Cost) as y1_, goodsgroup2_.Description as y2_, MONTH([Date]) FROM [SalesmanArticle] this_inner join [Article] article1_ on this_.ArticleId= article1_.ArticleId 内连接 [GoodsGroup] goodsgroup2_ on article1_.GoodsGroupId=goodsgroup2_.GoodsGroupId GROUP BY goodsgroup2_.Description, MONTH([Date])]
奇怪的是 NHibernate 尝试创建 2 个查询?!
而且他们两个都是正确的!
而不是代码行
我用了
SqlFunction 的问题在于它创建了一个 GROUP BY sa.Date 而不是 MONTH(sa.Date)。但是这种方法在语法上是正确的。
所以我切换到 SqlGroupProjection 方法。
但无论如何它不起作用。
有谁能够帮助我?
nhibernate - nHibernate 集合和别名条件
我有一个简单的测试对象模型,其中有学校,而学校有学生的集合。
我想检索一所学校及其所有超过一定年龄的学生。
我执行以下查询,获取给定学校和特定年龄以上的孩子:
这一切都很好,我可以看到查询进入数据库并返回预期的行数。
但是,当我执行以下任一操作时,它会通过运行另一个查询为我提供给定学校的学生总数(无论前面的请求如何):
谁能解释为什么?
nhibernate - 使用 ICriteria 按 null/not null 排序
我想像这样对我的结果进行排序:
- 首先,我想要列/属性不为 null的所有行/对象,然后是 colmn/property为 null的所有行/对象。
- 然后我想按另一列/属性排序。
如何使用 ICriteria 做到这一点?我必须创建自己的 Order 类,还是可以使用现有代码来完成?
我想要这样的订单:
nhibernate - NHibernate Projections 来检索集合?
我在检索投影中的字符串集合时遇到了一些麻烦:假设我有以下类
然后,我有一个我想要检索 WorkSet.Title、WorkSet.PartTitles 和 Id 的工作 ID 列表。
我的强项是做这样的事情:
Id 和 Title 加载得很好,但 PartTitles 返回 null。请提出建议!