gpt4 book ai didi

java - 字符串解耦和字段名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:26 25 4
gpt4 key购买 nike

我有许多域/业务对象,当在 hibernate 条件中使用时,它们被字段名称引用为字符串,例如:

Criteria crit = session.createCriteria(User.class);
Order myOrdering = Order.desc("firstname");
crit.addOrder(myOrdering);

firstnameUser.class 的字段/属性。

我可以手动创建一个枚举并将所有字符串存储在其中;有没有其他方法我想念并且需要更少的工作(我可能会忘记维护枚举)。

最佳答案

恐怕没有好的方法可以做到这一点。即使您决定使用反射,您也只有在查询运行时才会发现问题。

但是有一个更好的解决方案来尽早发现问题:如果您使用命名查询 (javax.persistence.NamedQueries),您将在 Hibernate 处理您的实体后立即编译所有查询,因此基本上它会在服务器启动期间发生。因此,如果某个对象的更改破坏了查询,您将在下次启动服务器时知道它,而不是在实际运行查询时知道。

希望对您有所帮助。

关于java - 字符串解耦和字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com