我有一个包含在SELECT子句的查询:NHibernate的返回SQL查询错误的结果
d1.id,
d1.title,
d1.original_doc,
d2.id,
d2.title
而且在FROM子句:
left outer join documents d2 on d1.original_doc = d2.id
比方说,在DB我有这些行: ID TITLE ORIGINAL_DOC
1 Title1
2 Title2 1
对于第一行,NHibernate的返回1,标题1,正ull,1,Title1,而不是1,Title1,null,null,null。
对于第二行,它将返回2,Title2,1,2,Title2而不是2,Title2,1,1,Title1。
请注意,第三列和第四列不应包含不同的值,因为连接的条件是相同的。似乎正在发生的事情是,我得到与d2相同的d1行,而不是由条件定义的行。
现在奇怪的部分:如果我打开.ShowSql()并将查询复制粘贴到Oracle Toad中,它实际上会返回正确的结果!
我正在使用VAR数据=执行Session.createSQLQuery(selectQuery)的.List()
任何人有任何想法NHibernate的设置结果?
谢谢,这样做!这似乎从NHibernate很弱,从面向完全相同的查询时返回不同的结果。我甚至不会介意一个错误,但悄悄地返回错误的结果是非常糟糕的。而且这不是一个必要的限制。 :/当你考虑它时,这显然是一个错误。 – svinja 2012-03-29 06:50:42
这也是我的看法。如果你愿意,你可以在jira中留言。增加一个类型为“功能增强”的新问题可能会更好。只要在杰拉有礼貌,有些人在那里很敏感... – 2012-03-29 09:46:11
+1报告错误ID导致我得出结论,这个错误是“不是一个错误”的nhibernate,我应该重新命名列名相同的拼写我的查询。 – 2013-02-28 09:06:43