diff --git a/documentation/src/main/asciidoc/repositories/Configuration.adoc b/documentation/src/main/asciidoc/repositories/Configuration.adoc index 89f0f0242b39..dcd68bd9ce70 100644 --- a/documentation/src/main/asciidoc/repositories/Configuration.adoc +++ b/documentation/src/main/asciidoc/repositories/Configuration.adoc @@ -60,7 +60,7 @@ annotationProcessor 'org.hibernate.orm:hibernate-processor:7.0.0' === Excluding classes from processing -There's three ways to limit the annotation processor to certain classes: +There are three ways to limit the annotation processor to certain classes: 1. A given repository may be excluded from processing simply by specifying `@Repository(provider="acme")` where `"acme"` is any string other than the empty string or a string equal, ignoring case, to `"Hibernate"`. This is the preferred solution when there are multiple Jakarta Data Providers available. 2. A package or type may be excluded by annotating it with the link:{doc-javadoc-url}org/hibernate/annotations/processing/Exclude.html[`@Exclude`] annotation from `org.hibernate.annotations.processing`. diff --git a/documentation/src/main/asciidoc/repositories/Repositories.adoc b/documentation/src/main/asciidoc/repositories/Repositories.adoc index 8c8f71bd39a8..c2920b15e579 100644 --- a/documentation/src/main/asciidoc/repositories/Repositories.adoc +++ b/documentation/src/main/asciidoc/repositories/Repositories.adoc @@ -113,7 +113,7 @@ This really isn't as bad as it sounds; overuse of lazy fetching is associated wi A future release of Jakarta Data will feature repositories backed by Jakarta Persistence stateful persistence contexts, but this functionality did not make the cut for Jakarta Data 1.0. ==== -The second big difference is that instead of providing a generic interface like `EntityManager` that's capable of performing persistence operations for any entity class, Jakarta Data requires that each interaction with the database go via a user-written method specific to just one entity type. The method is marked with annotations allowing Hibernate to fill in the method implementation. +The second big difference is that instead of providing a generic interface like `EntityManager` that's capable of performing persistence operations for any entity class, Jakarta Data requires that each interaction with the database goes via a user-written method specific to just one entity type. The method is marked with annotations allowing Hibernate to fill in the method implementation. For example, whereas Jakarta Persistence defines the methods `find()` and `persist()` of `EntityManager`, in Jakarta Data the application programmer is required to write an interface like the following: @@ -352,7 +352,7 @@ This is our first glimpse of the advantages of using Jakarta Data repositories w ==== If there is no `Book` with the given `isbn` in the database, the method throws `EmptyResultException`. -There's two ways around this if that's not what we want: +There are two ways around this if that's not what we want: - declare the method to return `Optional`, or - annotate the method `@jakarta.annotation.Nullable`. @@ -399,7 +399,7 @@ Furthermore, if the parameter type is a list or array of the entity field type, List books(String[] ibsn); ---- -Or course, an automatic query method might have multiple parameters. +Of course, an automatic query method might have multiple parameters. [source,java] ---- @@ -462,7 +462,7 @@ List booksByTitle(String pattern); You might notice that: - The `from` clause is not required in JDQL, and is inferred from the return type of the repository method. -- Since Jakarta Persistence 3.2, neither the `select` cause nor entity aliases (identification variables) are required in JPQL, finally standardizing a very old feature of HQL. +- Since Jakarta Persistence 3.2, neither the `select` clause nor entity aliases (identification variables) are required in JPQL, finally standardizing a very old feature of HQL. This allows simple queries to be written in a very compact form. @@ -493,7 +493,7 @@ The JPQL specification provides the `select new` construct for this. [source,java] ---- -@Query("select new AuthorBookRecord(b.isbn, a.ssn, a.name, b.title " + +@Query("select new AuthorBookRecord(b.isbn, a.ssn, a.name, b.title) " + "from Author a join books b " + "where title like :pattern") List summariesForTitle(@Pattern String pattern); @@ -509,7 +509,7 @@ Since this is quite verbose, Hibernate doesn't require the use of `select new`, @Query("select isbn, ssn, name, title " + "from Author join books " + "where title like :pattern") -List summariesForTitle(@Pattern String pattern); +List summariesForTitle(String pattern); ---- ====