From 4dd64aba3704bdb59e41ddd6e8ff971f386dfbda Mon Sep 17 00:00:00 2001 From: Nathan Rauh Date: Mon, 1 Jun 2026 10:55:33 -0500 Subject: [PATCH 1/2] Use consistent case for query keywords Co-authored-by-AI: IBM Bob 1.0.3 --- api/src/main/java/jakarta/data/repository/First.java | 4 ++-- api/src/main/java/jakarta/data/repository/Query.java | 10 +++++----- spec/src/main/asciidoc/repository.asciidoc | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/jakarta/data/repository/First.java b/api/src/main/java/jakarta/data/repository/First.java index 55ba0ad5d..ab79ded9d 100644 --- a/api/src/main/java/jakarta/data/repository/First.java +++ b/api/src/main/java/jakarta/data/repository/First.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022,2025 Contributors to the Eclipse Foundation + * Copyright (c) 2022,2026 Contributors to the Eclipse Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ * *
{@code
  * @First(10)
- * @Query("order by playCount desc")
+ * @Query("ORDER BY playCount DESC")
  * List topTen();
  * }
* diff --git a/api/src/main/java/jakarta/data/repository/Query.java b/api/src/main/java/jakarta/data/repository/Query.java index 61f3a0fd7..c80f2de8b 100644 --- a/api/src/main/java/jakarta/data/repository/Query.java +++ b/api/src/main/java/jakarta/data/repository/Query.java @@ -121,20 +121,20 @@ * public interface People extends CrudRepository { * * // JCQL with positional parameters - * @Query("where firstName = ?1 and lastName = ?2") + * @Query("WHERE firstName = ?1 AND lastName = ?2") * List byName(String first, String last); * * // JCQL with a named parameter - * @Query("where firstName || ' ' || lastName like :pattern") + * @Query("WHERE firstName || ' ' || lastName LIKE :pattern") * List byName(String pattern); * * // JPQL using a positional parameter - * @Query("from Person where extract(year from birthdate) = ?1") + * @Query("FROM Person WHERE EXTRACT(year FROM birthdate) = ?1") * List bornIn(int year); * * // JPQL using named parameters - * @Query("select distinct name from Person " + - * "where length(name) >= :min and length(name) <= :max") + * @Query("SELECT DISTINCT name FROM Person " + + * "WHERE LENGTH(name) >= :min AND LENGTH(name) <= :max") * Page namesOfLength(@Param("min") int minLength, * @Param("max") int maxLength, * PageRequest pageRequest, diff --git a/spec/src/main/asciidoc/repository.asciidoc b/spec/src/main/asciidoc/repository.asciidoc index 7c24dc2f4..98de0164f 100644 --- a/spec/src/main/asciidoc/repository.asciidoc +++ b/spec/src/main/asciidoc/repository.asciidoc @@ -93,7 +93,7 @@ For example: [source,java] ---- -@Insert +@Insert void insertBook(Book book); ---- @@ -151,13 +151,13 @@ For example, using a named parameter: [source,java] ---- -@Query("where title like :title order by title asc, id asc") +@Query("WHERE title LIKE :title ORDER BY title ASC, id ASC") Page booksByTitle(String title, PageRequest pageRequest); ---- [source,java] ---- -@Query("where p.name = :prodname") +@Query("WHERE p.name = :prodname") Optional findByName(@Param("prodname") String name); ---- @@ -165,7 +165,7 @@ Or, using a positional parameter: [source,java] ---- -@Query("delete from Book where isbn = ?1") +@Query("DELETE FROM Book WHERE isbn = ?1") void deleteBook(String isbn); ---- @@ -357,7 +357,7 @@ public interface ProductRepository extends BasicRepository { @Find Page findByName(String name, PageRequest pageRequest, Order order); - @Query("where name like :pattern") + @Query("WHERE name LIKE :pattern") List findByNameLike(String pattern, Limit max, Sort sort); } @@ -760,7 +760,7 @@ In this example, the application uses a cursor to request pages in forward and p ---- @Repository public interface Products extends CrudRepository { - @Query("where name like ?1") + @Query("WHERE name LIKE ?1") CursoredPage findByNameLike(String namePattern, PageRequest pageRequest, Order sorts); From bed9a01297a708ccdc14ab52b2c59df09cf64ce9 Mon Sep 17 00:00:00 2001 From: Nathan Rauh Date: Mon, 1 Jun 2026 11:19:38 -0500 Subject: [PATCH 2/2] missed occurrences --- api/src/main/java/module-info.java | 4 ++-- spec/src/main/asciidoc/repository.asciidoc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/module-info.java b/api/src/main/java/module-info.java index e71645d23..8d4fa3f59 100644 --- a/api/src/main/java/module-info.java +++ b/api/src/main/java/module-info.java @@ -487,13 +487,13 @@ * *
  * // example using named parameters
- * @Query("where age between :min and :max order by age")
+ * @Query("WHERE age BETWEEN :min AND :max ORDER BY age")
  * List<Person> peopleInAgeRange(int min, int max);
  * 
* *
  * // example using an ordinal parameter
- * @Query("where ssn = ?1 and deceased = false")
+ * @Query("WHERE ssn = ?1 AND deceased = FALSE")
  * Optional<Person> person(String ssn);
  * 
* diff --git a/spec/src/main/asciidoc/repository.asciidoc b/spec/src/main/asciidoc/repository.asciidoc index 98de0164f..504985fa2 100644 --- a/spec/src/main/asciidoc/repository.asciidoc +++ b/spec/src/main/asciidoc/repository.asciidoc @@ -280,7 +280,7 @@ Connection connection(); default void cleanup() { try (Statement s = connection().createStatement()) { - s.executeUpdate("truncate table books"); + s.executeUpdate("TRUNCATE TABLE books"); } } ----