JPQL 的威力还是危险:使用 SELECT NEW 创建对象
Java 持久性查询语言 (JPQL) 领域提供了一个众所周知的强大功能作为 SELECT NEW,可以在 select 语句中创建新对象。该构造不是检索由持久性上下文管理的实例,而是有利于瞬态对象的操作。然而,问题仍然存在:SELECT NEW 是应该接受还是避免的工具?
合理的拥抱
根据 EJB 3.0 JPA 规范,SELECT NEW 有特定的用途:
一个示例是在没有完整客户实体的情况下检索客户详细信息的查询:
SELECT NEW com.acme.example.CustomerDetails(c.id, c.status, o.count) FROM Customer c JOIN c.orders o WHERE o.count > 100
何时避免
虽然 SELECT NEW 提供了便利,但不应随意使用。它的谨慎使用仅限于以下场景:
拥抱良好实践
远非阻止 SELECT NEW 用法,重要的是在坚持良好实践的同时拥抱它:
结论
如果应用得当,SELECT NEW 是一个很有价值的工具。通过在遵循最佳实践的同时享受其优势,开发人员可以利用 JPQL 的强大功能,同时避免陷阱。因此,是否应该接受或避免 SELECT NEW 是一个明智应用的问题,认识到它在特定上下文中的实用性,而不屈服于过度依赖。
以上是## 在 JPQL 中选择新功能:强大的工具还是潜在的陷阱?的详细内容。更多信息请关注PHP中文网其他相关文章!