是否可以在锡耶纳按计算字段排序?

问题描述

| 我正在尝试根据在Play中计算出的文件,按顺序返回查询。 这是我正在使用的查询
return all().order(\"points\").fetch();
点定义为
public Integer points;
并感谢这个吸气剂
public int getPoints(){
    List<EventVote> VotesP = Votes.filter(\"isPositive\",true).fetch();
    List<EventVote> VotesN = Votes.filter(\"isPositive\",false).fetch();
    this.points= VotesP.size()-VotesN.size();
    return this.points;
}
我做时正确地调用吸气剂
int Votes=objectWithPoints.points;
我觉得自己在塞纳游戏中冒充了太多,但是我希望它可以正常工作(或类似的代码)。当前,它只是跳过订单条件。在其他任何字段上的订购都可以正常工作。     

解决方法

        当您说您等待得太多时,我认为您是对的:) Siena查询“ 4”向数据库执行请求。 因此它将排序存储在数据库中的值而不是存储在您的程序中。 从您所说的来看,我看到您有一个用于计算值的getter getPoints。 但是,如果您不将此值存储到数据库中,则Siena无法执行排序。 因此,要么计算值,然后将其设置在对象中,然后将对象保存到数据库中即可。
objectWithPoints.points = getPoints();
objectWithPoints.save();
在计算值之后,您可以在程序中自己对值进行排序。