首页 > Java > java教程 > 正文

## 在 JPQL 中选择新功能:强大的工具还是潜在的陷阱?

Linda Hamilton
发布: 2024-10-25 10:18:31
原创
971 人浏览过

## SELECT NEW in JPQL: Power Tool or Potential Pitfall?

JPQL 的威力还是危险:使用 SELECT NEW 创建对象

Java 持久性查询语言 (JPQL) 领域提供了一个众所周知的强大功能作为 SELECT NEW,可以在 select 语句中创建新对象。该构造不是检索由持久性上下文管理的实例,而是有利于瞬态对象的操作。然而,问题仍然存在:SELECT NEW 是应该接受还是避免的工具?

合理的拥抱

根据 EJB 3.0 JPA 规范,SELECT NEW 有特定的用途:

  • 返回自定义 Java 实例,包括非映射类。
  • 从连接实体中类型安全地检索特定属性。

一个示例是在没有完整客户实体的情况下检索客户详细信息的查询:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!