按不同的结果排序

时间:2014-03-21 18:25:28

标签: java jpa sql-order-by openjpa

嘿,我有一个问题,但我自己无法解释。 我使用OpenJPA并有一个简单的类:

@Entity
public class Organisation implements Serializable{
@Id
private int id;
private String name;    

public Organisation(int id, String name){
    this.id = id;
    this.name = name;
}

public String getName() {
    return name;
}   
}

我添加名称为aa,bb,AA,BB的组织,并用以下方式查询:

TypedQuery<Organisation> qry = em.createQuery("select o from Organisation o order by o.name", Organisation.class);

编辑:这是完全相同的WAR和数据库:
在Glassfish上,我得到: aa,AA,bb,BB
在Websphere上我得到: AA,BB,aa,bb
在Oracle上直接SQL-Query我得到: aa,AA,bb,BB

我在家里用glassfish / h2测试它,我得到 AA,BB,aa,bb

我的错误在哪里?

1 个答案:

答案 0 :(得分:2)

JPA对排序没有做任何特殊处理,它只生成传递给数据库的ORDER BY子句,因此几乎可以确定数据库存在问题。在您看到不同结果的情况下,您使用的是不同的数据库还是不同的连接参数?如果在不同的场景中整理设置不同,您可以看到类似的内容。

编辑1:

此其他Stack Overflow问题似乎可以解决此问题:

stackoverflow.com/questions/8818201/oracle-order-by-different