Mer*_*ham 1 nhibernate nhibernate-mapping
在NHibernate中有一种方法可以将计数查询的结果映射到类的属性吗?我想在XML映射中执行此操作.
我知道我可以通过代码(通过实际查询计数的构造,或通过作弊,执行完整查询,并计算结果项)来制定这个,但如果我可以编写一些简短的SQL或HQL,那将是很好的.以某种方式阻塞到我的XML映射中.
一个具体的例子.我的DB有这些表 -
Entry
Id
BodySummary
Comment
Id
EntryId
Body
Run Code Online (Sandbox Code Playgroud)
我想得到一些条目摘要.对于每个条目,我想获得评论计数(和正文摘要).
仅供参考:我省略了我的数据库中不相关的部分,如作者,条目标题/正文,时间戳等.这当然应该与我询问的查询部分无关.
我认为你不能用HQL做到这一点.但是这里是如何用SQL做的:
<class name="Entry" .... >
<id>
//ID Strategy
</id>
<property name="BodySummary" />
...
<property name="CommentCount" formula="(SELECT COUNT(*) FROM Comment c WHERE c.EntryId = Id)" type="Int32" />
</class>
Run Code Online (Sandbox Code Playgroud)
重要提示:
您可能希望将其设置为只读字段,但这是您如何映射它的基础知识.
结果SQL将是这样的:
SELECT this_.Id as Id11_0_,
this_.BodySummary as BodySummary10_11_0_,
(SELECT COUNT(* )
FROM Comment c
WHERE c.EntryId = this_.Id) as formula0_0_
FROM Entry this_
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |