Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 5 additions & 22 deletions docs/src/main/asciidoc/hibernate-orm-panache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -758,12 +758,12 @@ You can reference a named query instead of a (simplified) HQL query by prefixing
package org.acme;

import java.time.LocalDate;
import java.util.Map;
import jakarta.persistence.Entity;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;

import io.quarkus.hibernate.orm.panache.PanacheEntity;
import io.quarkus.panache.common.Parameters;

@Entity
@NamedQueries({
Expand All @@ -783,11 +783,11 @@ public class Person extends PanacheEntity {
}

public static long countByStatus(Status status) {
return count("#Person.countByStatus", Parameters.with("status", status).map());
return count("#Person.countByStatus", Map.of("status", status));
}

public static long updateStatusById(Status status, long id) {
return update("#Person.updateStatusById", Parameters.with("status", status).and("id", id));
return update("#Person.updateStatusById", Map.of("status", status, "id", id));
}

public static long deleteById(long id) {
Expand Down Expand Up @@ -815,29 +815,12 @@ Or by name using a `Map`:

[source,java]
----
import java.util.HashMap;
import java.util.Map;

Map<String, Object> params = new HashMap<>();
params.put("name", "stef");
params.put("status", Status.Alive);
Person.find("name = :name and status = :status", params);
----

Or using the convenience class `Parameters` either as is or to build a `Map`:

[source,java]
----
// generate a Map
Person.find("name = :name and status = :status",
Parameters.with("name", "stef").and("status", Status.Alive).map());

// use it as-is
Person.find("name = :name and status = :status",
Parameters.with("name", "stef").and("status", Status.Alive));
Person.find("name = :name and status = :status", Map.of("name", "stef", "status", Status.Alive));
----

Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>` or `Parameters`).
Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>`).

=== Query projection

Expand Down
24 changes: 4 additions & 20 deletions docs/src/main/asciidoc/hibernate-reactive-panache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -538,11 +538,11 @@ public class Person extends PanacheEntity {
}

public static Uni<Long> countByStatus(Status status) {
return count("#Person.countByStatus", Parameters.with("status", status).map());
return count("#Person.countByStatus", Map.of("status", status);
}

public static Uni<Long> updateStatusById(Status status, Long id) {
return update("#Person.updateStatusById", Parameters.with("status", status).and("id", id));
return update("#Person.updateStatusById", Map.of("status", status, "id", id));
}

public static Uni<Long> deleteById(Long id) {
Expand Down Expand Up @@ -570,26 +570,10 @@ Or by name using a `Map`:

[source,java]
----
Map<String, Object> params = new HashMap<>();
params.put("name", "stef");
params.put("status", Status.Alive);
Person.find("name = :name and status = :status", params);
Person.find("name = :name and status = :status", Map.of("name", "stef", "status", Status.Alive));
----

Or using the convenience class `Parameters` either as is or to build a `Map`:

[source,java]
----
// generate a Map
Person.find("name = :name and status = :status",
Parameters.with("name", "stef").and("status", Status.Alive).map());

// use it as-is
Person.find("name = :name and status = :status",
Parameters.with("name", "stef").and("status", Status.Alive));
----

Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>` or `Parameters`).
Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>`).

=== Query projection

Expand Down
19 changes: 2 additions & 17 deletions docs/src/main/asciidoc/mongodb-panache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -622,27 +622,12 @@ Or by name using a `Map`:

[source,java]
----
Map<String, Object> params = new HashMap<>();
params.put("name", "Loïc");
params.put("status", Status.Alive);
Map<String, Object> params = Map.of("name", "Loïc", "status", Status.Alive);
Person.find("name = :name and status = :status", params);
Person.find("{'name': :name, 'status', :status}", params);
----

Or using the convenience class `Parameters` either as is or to build a `Map`:

[source,java]
----
// generate a Map
Person.find("name = :name and status = :status",
Parameters.with("name", "Loïc").and("status", Status.Alive).map());

// use it as-is
Person.find("{'name': :name, 'status': :status}",
Parameters.with("name", "Loïc").and("status", Status.Alive));
----

Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>` or `Parameters`).
Every query operation accepts passing parameters by index (`Object...`), or by name (`Map<String,Object>`).

When you use query parameters, be careful that PanacheQL queries will refer to the Object parameters name but native queries will refer to MongoDB field names.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ public static int executeUpdate(String query, Map<String, Object> params) {
* @param query a normal HQL query
* @param params {@link Parameters} of named parameters
* @return the number of rows operated on.
* @deprecated Use {@link #executeUpdate(String, Map)} with {@link Map#of()}
*/
@Deprecated(since = "3.34")
public static int executeUpdate(String query, Parameters params) {
return JpaOperations.INSTANCE.executeUpdate(query, params.map());
}
Expand Down
Loading
Loading