Mysql 5.5与hibernate 4的顺序是不一致的

时间:2013-12-22 22:33:03

标签: java mysql hibernate

我们正在使用hibernate 4和mysql 5.5.x以及Innodb作为我们的默认引擎。我们有一个存储过程,通过连接视图和在存储过程中创建的临时 MYISAM 临时表来返回一些行。 使用hibernate会话工厂和会话以及ScrollableResultSet调用存储的proc。它返回一个对象数组列表。 以下是示例查询

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'

有没有人遇到过类似的问题? 提前感谢您的回答。

1 个答案:

答案 0 :(得分:0)

是的,我找到了可以指导你的东西。

例如,您不能在order by子句中使用变量。您必须连接一个值并使用后面的连接值。

像这样:

$stid = oci_parse($conn, "SELECT X FROM BOOKS " . $orderby);