嘿,我有一个问题,但我自己无法解释。 我使用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
我的错误在哪里?
答案 0 :(得分:2)
JPA对排序没有做任何特殊处理,它只生成传递给数据库的ORDER BY子句,因此几乎可以确定数据库存在问题。在您看到不同结果的情况下,您使用的是不同的数据库还是不同的连接参数?如果在不同的场景中整理设置不同,您可以看到类似的内容。
编辑1:
此其他Stack Overflow问题似乎可以解决此问题:
stackoverflow.com/questions/8818201/oracle-order-by-different