我有一个简单的查询,其中我根据一些参数进行ORDER BY。这里有一些代码来说明:
String getPrestacionAfiliado = "SELECT x FROM PrestacionAfiliado x WHERE ";
if(prestador!=null){getPrestacionAfiliado += " AND x.prestador=:prestador"
if(XXX){getPrestacionAfiliado += "ORDER BY x.date"}
else {getPrestacionAfiliado += "ORDER BY x.afiliado.plan.nombre"}
如果我按x.date订购,即使日期为空,一切也都很有效。
现在,如果我尝试通过x.afiliado.plan.nombre进行排序,则查询不会返回任何内容(并且它应该返回一些内容)。我认为这可能是因为“计划”对象为空,所以当它试图从“计划”中拉出“nombre”时,由于“计划”为空而失败...但我不知道OpenJPA如何处理情况像这样。
任何人都有过这种情况的经历吗?我认为默认行为是返回查询结果“无序”,但似乎可能不是这种情况。