使用JPA注释检索已排序的集合,而不使用硬编码字符串

时间:2014-03-17 15:22:27

标签: java sorting jpa collections annotations

在我的示例中,持久化对象包含一组项目。 我现在想要从数据库中检索此集合,以便根据属性(这是一个枚举,但不是“Item”的ID)对项目进行排序。

    @OneToMany(cascade=CascadeType.ALL)
    private List<Item> items;

我可以使用@OrderBy,如下所示:

    @OneToMany(cascade=CascadeType.ALL)
    @OrderBy("propertyOfItem")
    private List<Item> items;

但是,我真的不喜欢在程序中使用硬编码字符串。我设法通过使用(自动生成的)元模型来引用字段来解决我的其他问题。现在我想要一个类似的解决方案,也可以根据我的规范对数据库进行排序。

如何在不必对字符串“propertyOfItem”进行硬编码的情况下获取上面显示的代码的行为?

编辑以澄清我的意图(尽管你可能在不理解这些问题的情况下回答这个问题):我想要重新命名字段或使我的代码无法编译,或者(通过在Eclipse中实现相应的聪明)更新{ {1}}相应的等价物。当我尝试基于不再存在的字段/列进行排序时,我不希望我的代码编译和运行并且无声地失败。我通过使用自动生成的元模型解决了类似的问题(即,我可以构建每当我重命名其中引用的字段时自动更新的查询)。现在我想要一个类似的,干净的解决方案来解决这里描述的问题。

0 个答案:

没有答案