Android Room 按别名排序

2023-12-31

我想根据我创建的自定义别名来订购数据集。我尝试过,但它会导致语法错误。我究竟做错了什么?

Code:

@Query("SELECT a/b as ratio " +
        "FROM dataset " +
        "where my_status = :myStatus " +
        "order by ratio ASC")

它无法按部分顺序找到比例。


问题是Room生成你的SQL在编译时根据您的实体进行查询。因此,只有实体中指定的列名称才能被识别Room.

例如,如果您有一个实体Employee:

@Entity(tableName = "employee_table")
public class Employee {
    private String firstName;
    private String lastName;
    private double monthlySalary;
}

如果你想计算年薪或日薪或其他什么,那么你可以添加一个额外的列Employee (private double mathResult),然后将其用作别名:

@Dao
public interface EmployeeDao {
    @Query("select firstName, lastName, monthlySalary, monthlySalary*12 as mathResult from user_table order by mathResult asc")
    LiveData<List<Employee>> getUsers();    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Room 按别名排序 的相关文章

随机推荐