我们使用 hibernate 4 和 mysql 5.5.x,并以 Innodb 作为默认引擎。我们有一个存储过程,它通过连接 View 和在存储过程内创建的临时 MYISAM 临时表来返回一些行。 使用 hibernate session 工厂、 session 和 ScrollableResultSet 调用存储过程。它返回对象数组的列表。 这是示例查询
SELECT
col1, col2, col3, col4
FROM view1 v
JOIN temptable1 t on t.id = v.id
ORDER BY intcol DESC, varcharcol
问题来了... 对于具有相同 intcol 值的行,varcharcol 上的辅助排序依据无法正常工作,它们会以困惑的顺序返回。
返回的示例行
Row1, 10, 'foo'
Row2 , 10, 'bar'
Row3, 10, 'foo'
Row4, 10, 'foo'
Row5, 10, 'bar'
有人遇到过类似的问题吗? 预先感谢您的回答。
最佳答案
是的,我发现了一些可以指导你的东西。
例如,您不能在 order by 子句中使用变量。您必须连接一个值并在后面使用连接后的值。
像这样:
$stid = oci_parse($conn, "SELECT X FROM BOOKS " . $orderby);
关于java - Mysql 5.5 与 hibernate 4 order by 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20734758/