![]() |
1
24
此时无法看到论坛帖子(断开链接?),因此可能这不是答案,但您可以添加一个DistinctRootEntityResultTransformer:
|
![]() |
2
87
要执行不同的查询,可以将条件上的投影设置为projects.distinct。然后包含要返回的列。然后,通过将结果转换器设置为AliasToBeanResultTransformer(传入结果应转换为的类型),结果将变回强类型对象。在本例中,我使用的类型与实体本身相同,但您可以为此查询专门创建另一个类。
这将创建类似于(至少在SQL Server中)的SQL:
请注意,结果中将只填充您在投影中指定的属性。 这种方法的优点是过滤是在数据库中执行的,而不是将所有结果返回给应用程序,然后进行过滤——这是DistinctRootEntityTransformer的行为。 |
![]() |
3
6
为了它的价值, NHibernate: Optimising Queries with Projections 帮助我解决了基本上相同的问题。 |
![]() |
4
-1
我们正在用最现代、最强大、最微小的方法来处理这件事……只有当你准备好去面对可怕的事物时,才能继续读下去……这与标准无关……
所以,如果你来这里希望找到一种方法来做到这一点,那就避免了干扰标准,即使你认为你完全必须朝着这个方向前进,只是为了在你的SQL中添加“distinct”…不要再搜索了。 |
|
5
-4
我还遇到了项目数不明确的问题(我在映射文件中使用fetch=“join”)。我用linq-to-nhiberinate来解决这个问题,它的用法如下:
|
![]() |
Nico Pizzo · 子查询上的nhibernate联接 7 年前 |
![]() |
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 7 年前 |
![]() |
Stu · 具有特定类型的字符串外键的NHibernate映射 7 年前 |
![]() |
Zout · 为Hibernate的HiLo算法管理的列生成ID 7 年前 |