分类目录归档:Java

使用JPA排序


1.概述

本文说明了JPA可用于排序的各种方式。

2.使用JPA / JQL API排序

使用JQL进行排序是在Order By子句的帮助下完成的:

String jql ="Select f from Foo as f order by f.id";
Query query = entityManager.createQuery (jql);

基于此查询,JPA生成以下直接的SQL语句:

Hibernate: select foo0_.id as id1_4_, foo0_.name as name2_4_
    from Foo foo0_ order by ...

阅读全文...

使用Spring 4和JPA进行事务配置


1.概述

本教程将讨论配置Spring Transactions的正确方法,如何使用@Transactional注释和常见陷阱。

有关核心持久性配置的更深入讨论,请查看Spring with JPA教程。

有两种不同的方式来配置事务 - 注释和AOP - 每种都有自己的优势 - 我们将在这里讨论更常见的注释配置。

2.配置不带XML的事务

Spring 3.1引入了@EnableTransactionManagement注释,用于@Configuration类并启用事务支持:

@Configuration
@EnableTransactionManagement
public class...

阅读全文...

The DAO with Spring and Hibernate


1.概述

本文将展示如何使用Spring和Hibernate实现DAO。对于核心Hibernate配置,请参阅有关Hibernate 3和Hibernate 4 with Spring的文章。

  1. No More Spring Templates

从Spring 3.0和Hibernate 3.0.1开始,不再需要Spring HibernateTemplate来管理Hibernate Session。现在可以使用上下文会话 - 由Hibernate直接管理并在整个事务范围内活动的会话。

因此,现在最好的做法是直接使用Hibernate API而不是HibernateTemplate,它...

阅读全文...

The DAO with JPA and Spring


1.概述

本文将展示如何使用Spring和JPA实现DAO。有关核心JPA配置,请参阅有关JPA with Spring 的文章。

2.No More Spring Templates

与Spring 3.1开始,JpaTemplate能够和相应的JpaDaoSupport 已经被弃用,取而代之的使用本地Java持久性API的。

此外,这两个类仅与JPA 1(来自JpaTemplate javadoc)相关:

Note that this class did not get upgraded to JPA 2.0 and never will.

因此,现在最好的做法是直接使用Java P...

阅读全文...

Simplify the DAO with Spring and Java Generics


1.概述

本文将重点介绍如何通过为系统中的所有实体使用单个,通用的数据访问对象来简化DAO层,这将导致优雅的数据访问,没有不必要的混乱或冗长。

2. Hibernate和JPA DAO

大多数生产代码库都有某种DAO层。通常,实现的范围从没有抽象基类的多个类到某种类的泛化类。但是,有一点是一致的 - 总有不止一个 - 最有可能的是,DAO与系统中的实体之间存在一对一的关系。

此外,根据所涉及的泛型的级别,实际的实现可以从高度重复的代码变为几乎为空,其中大部分逻辑分组在基本抽象类中。

这些多个实现通常可以由单个参数化DAO替代,因为通过充分利用Java Generics提供的类型安全性,不...

阅读全文...

Spring Data Java 8 Support


1.概述

Spring Data现在支持核心Java 8功能 - 例如Optional,Stream API和CompletableFuture。

在这篇快速文章中,我们将通过一些示例来说明如何在框架中使用这些示例。

2. Optional

让我们从CRUD存储库方法开始 - 现在将结果包装在Optional中:

public interface CrudRepository<T, ID> extends Repository<T, ID> {

    Optional<T> findById(ID id);

}

返回Optional实例时,这是...

阅读全文...

Spring Data JPA简介


1.概述

本文将重点介绍将Spring Data JPA引入Spring 4项目并完全配置持久层。有关使用基于Java的配置和项目的基本Maven pom设置Spring上下文的分步介绍,请参阅此文章。

2. Spring Data生成了DAO - 没有更多的DAO实现

正如前一篇文章中所讨论的,DAO层通常包含许多可以并且应该简化的样板代码。这种简化的优点很多:需要定义和维护的工件数量减少,数据访问模式的一致性和配置的一致性。

Spring Data将此简化向前推进了一步,并且可以完全删除DAO实现 - DAO的接口现在是唯一需要明确定义的工件。

为了开始利用JPA的Spring Da...

阅读全文...

A Guide to JPA with Spring


1.概述

本教程介绍如何使用Hibernate作为持久性提供程序来设置Spring with JPA。

有关使用基于Java的配置和项目的基本Maven pom设置Spring上下文的分步介绍,请参阅此文章。

我们首先在Spring Boot项目中设置JPA,然后如果我们有一个标准的Spring项目,我们将研究我们需要的完整配置。

注:这是一个关于使用Spring 4设置Hibernate 4的视频(我建议以完整的1080p观看):

2. JPA in Spring Boot

Spring Boot项目旨在更快,更轻松地创建Spring应用程序。这是通过使用启动器和自动配置来实现各种Sp...

阅读全文...

Guide to Hibernate 4 with Spring


1.概述

本文将重点介绍如何使用Spring设置Hibernate 4 - 我们将看看如何使用Java和XML配置来配置Spring with Hibernate 4。这个过程的一部分当然是Hibernate 3文章的共同点。

2. Maven

要将Spring Persistence依赖项添加到项目pom.xml,请参阅专注于Spring和Maven依赖项的文章。

继续使用Hibernate 4,Maven依赖很简单:

<dependency><font></font>
   <groupId>org.hibernate</grou...

阅读全文...

Spring Bean Annotations


1.概述

在本文中,我们将讨论用于定义不同类型bean的最常见的Spring bean注释。

有几种方法可以在Spring容器中配置bean。我们可以使用XML配置声明它们。我们可以在配置类中使用@Bean批注声明bean 。

或者我们可以使用org.springframework.stereotype包中的一个注释标记该类,并将其余部分留给组件扫描。

2.组件扫描

如果启用了组件扫描,Spring可以自动扫描bean的包。

@ComponentScan配置要扫描具有注释配置的类的包。我们可以直接使用basePackages或value参数之一指定基本包名(value是basePacka...

阅读全文...