否,不建议使用旧的标准API。只需查看javadoc:没有弃用警告。但是我建议您坚持使用标准的JPA API,而不要使用标准的JPA API和专有的Hibernate API。
不,不会强迫你。您仍然可以使用字符串标识符。但是,如果以类型安全为目标,则强烈建议使用元模型类。
当然,您不需要手动生成这些。它们是由注释处理器根据您的实体类及其映射注释生成的。您可能会觉得它很奇怪,但是
root.get(MyEntity_.firstName)比使用它更安全
root.get("firstName"):在编译时检测到错字,如果将字段重构为firstname,编译器会生成错误,而不是让您使用旧的
"firstName"字符串标识符。
我仍然发现JPQL查询更易于编写,理解和维护,并且仅在必须基于多个…标准生成动态查询时才使用标准API。使用自动测试来检查查询是否正确。即使使用条件查询BTW,也要这样做。



