文章分类: 编程
编程

使用 JPA 静态元模型创建类型安全的查询

27 2024-07-25 01:24:00

编写条件查询或创建动态实体图时,需要引用实体类及其属性。最快捷、最简单的方法是将所需的名称作为字符串提供。但这有几个缺点,例如,在编写查询时,必须记住或查找实体属性的所有名称。但是,如果必须重构实体并修改某些属性的名称,那么在项目的后期阶段也会导致更大的问题。在这种情况下,必须使用 IDE 的搜索功能,并尝试查找引用修改后的属性的所有字符串。这是一个乏味且容...

详情...
编程

Entities 或 DTO – 应该使用哪种投影?

40 2024-07-24 04:01:00

JPA 和 Hibernate 允许你在 JPQL 和 Criteria 查询中使用 DTO 和实体(Entity)作为投影。当我在在线培训或研讨会上谈论 Hibernate 的性能时,经常被问到,使用哪种投影是否重要。答案是:是的!为用例选择正确的投影可能会对性能产生巨大的影响。我并不是说只检索你需要的数据。很明显,检索不必要的信息不会为你带来任何性能优势...

详情...
编程

Hibernate 最佳实践

52 2024-07-22 14:00:00

Hibernate 是迄今为止最受欢迎的 JPA 实现。这种受欢迎程度为所有用户带来了几个优势。有很多关于它的博客文章,流行论坛上的问答,以及公认的最佳实践。本文将总结一些 JPA 和 Hibernate 的最佳实践,...

详情...
编程

JAVA SQL 查询结果映射之 Hibernate 特有的映射

58 2024-07-21 02:39:00

这是 SQL 查询结果集映射系列的第四篇,也是最后最后一篇。在第一篇文章中,我们了解了一些将查询结果映射到实体的基本映射定义。在第二篇文章中,映射定义变得更加复杂,因为我们将查询结果映射到多个实体并处理额外的字段。在第三篇文中,我们了解了 JPA 2.1 中引入的一个新特性,即构造函数-结果映射。而本文,我们来看看一些 Hibernate 特有的特性,它们不...

详情...
编程

JAVA SQL 查询结果映射之构造函数映射

74 2024-07-20 00:33:00

这是 SQL 结果集映射系列的第三篇。在本系列的第一篇文章中,我们查看了查询结果和单个实体之间的一些映射定义。第二篇文章中的映射定义则更为复杂,因为我们将查询结果映射到了多个实体并处理了额外的字段。本文中,我们将查看 JPA 2.1 中引入的构造函数结果映射。该特性允许你使用查询结果调用值对象的构造函数,类似于 JPQL 构造函数表达式。如果我们想向客户端提...

详情...
编程

JAVA SQL 查询结果映射之复杂映射

83 2024-07-18 05:14:00

这是 SQL 查询结果映射的第二篇。我们在结果集映射的第一篇文章《基础篇》中了解了一些基本的结果类型映射。本文中,我们将定义更复杂的映射,这些映射可以将查询结果映射到多个实体,并处理无法映射到特定实体的其他字段。示例在我们深入研究更复杂的映射之前,让我们先看看将用于示例的实体模型。我们在本系列的第一篇文章中使用了 Author 实体,该实体具有 id、版本、...

详情...
编程

JAVA SQL 查询结果映射之基础篇

89 2024-07-16 05:07:00

通常,JPQL的功能不足以执行我们在现实项目中需要的查询。一般来说,这不是一个问题,因为 JPA 被设计为一个有漏洞的抽象,我们可以通过使用原生查询或调用存储过程来充分利用 SQL 的潜力。唯一的缺点是,这些查询返回的是 Object[] 的 List,而不是我们习惯使用的映射实体和值对象。每个 Object[] 都包含一条由数据库返回的记录。然后,我们需要...

详情...
编程

如何使用 JPA 和 Hibernate 调用原生 SQL 查询

122 2024-07-15 03:54:00

Java 持久化查询语言(JPQL)是使用 JPA 从数据库中查询数据的最常见方法。它使你能够重用映射定义,并且比 SQL 更易于使用。但它只支持 SQL 标准的一小部分,而且也不支持数据库特定的功能。那么,如果要使用特定于数据库的查询功能,或者 DBA 为你提供了一个无法转换为 JPQL 的高度优化的查询,该怎么办呢?忽略它并在 Java 代码...

详情...
编程

Hibernate: 如何原生查询的控制缓存无效

95 2024-07-14 01:09:00

问题描述:“有人告诉我,原生查询会从我的二级缓存中删除所有实体。但你仍然在推荐他们。它们不会对性能产生负面影响吗?”方案:是的,有些原生查询会使二级缓存失效。但是不用担心,如果你做得正确,它不会对性能产生任何负面影响,也不会改变我对于使用原生查询的建议。我们首先需要讨论哪种原生查询会使二级缓存失效。哪些原生查...

详情...
编程

PHP 获取 Let's Encrypt 免费 SSL 证书

116 2024-07-11 02:44:00

这个客户端是用 PHP 编写的,旨在成为一个基于 ACME V2 的简化和解耦的 Let's Encrypt 客户端。与文件系统或 Web 服务器解耦例如,这个客户端不需要在 nginx 配置下将证书写入磁盘,而是只返回数据(证书和私钥)。要求PHP7+opensslFlysystem (任何适配器都可) - 用以存储 Lets Encrypt 账号信息开始...

详情...