Repository: quarkusio/quarkus
Issue: Panache - could not find indexed method

As discussed [on zulip](https://quarkusio.zulipchat.com/#narrow/stream/187038-dev/topic/Panache.20-.20Could.20not.20find.20indexed.20method) if a panache entity overrides a static method from `PanacheEntityBase` with an array argument the fails with:

```
Caused by: java.lang.IllegalStateException: Could not find indexed method: Lio/quarkus/it/panache/Beer;.persist with descriptor (Ljava/lang/Object;[Ljava/lang/Object;)V and arg types [java.lang.Object, java/lang/Object[]]
	at io.quarkus.panache.common.deployment.PanacheEntityEnhancer$PanacheEntityClassVisitor.visitMethod(PanacheEntityEnhancer.java:142)
```

The arg type `java/lang/Object[]` is very likely wrong.

Steps to reproduce:

1. Modify the [Beer](https://github.com/quarkusio/quarkus/blob/master/integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Beer.java) entity as follows
2. Run the `TransactionalRepositoryTest` from `integration-tests/hibernate-orm-panache`

 ```java
@Entity
public class Beer extends PanacheEntity {

    public String name;

    public static void persist(Object firstEntity, Object... entities) {
        PanacheEntityBase.persist(firstEntity, entities);
    }
}
```

Changed files:
extensions/panache/panache-common/deployment/src/main/java/io/quarkus/panache/common/deployment/JandexUtil.java
integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Person.java

diff --git a/extensions/panache/panache-common/deployment/src/main/java/io/quarkus/panache/common/deployment/JandexUtil.java b/extensions/panache/panache-common/deployment/src/main/java/io/quarkus/panache/common/deployment/JandexUtil.java
index 7c7323a7e6c..d7f1d218975 100644
--- a/extensions/panache/panache-common/deployment/src/main/java/io/quarkus/panache/common/deployment/JandexUtil.java
+++ b/extensions/panache/panache-common/deployment/src/main/java/io/quarkus/panache/common/deployment/JandexUtil.java
@@ -450,7 +450,8 @@ public static Type[] getParameterTypes(String methodDescriptor) {
                     String binaryName = argsSignature.substring(i + 1, end);
                     // arrays take the entire signature
                     if (dimensions > 0) {
-                        args.add(Type.create(DotName.createSimple(argsSignature.substring(start, end + 1)), Kind.ARRAY));
+                        args.add(Type.create(DotName.createSimple(argsSignature.substring(start, end + 1).replace('/', '.')),
+                                Kind.ARRAY));
                         dimensions = 0;
                     } else {
                         // class names take only the binary name
diff --git a/integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Person.java b/integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Person.java
index 62918ba9160..4fc3066edb5 100644
--- a/integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Person.java
+++ b/integration-tests/hibernate-orm-panache/src/main/java/io/quarkus/it/panache/Person.java
@@ -23,6 +23,9 @@
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 import io.quarkus.hibernate.orm.panache.PanacheEntity;
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import io.quarkus.hibernate.orm.panache.PanacheQuery;
+import io.quarkus.hibernate.orm.panache.runtime.JpaOperations;
 
 @XmlRootElement
 @Entity(name = "Person2")
@@ -56,6 +59,11 @@ public static List<Person> findOrdered() {
         return find("ORDER BY name").list();
     }
 
+    // For https://github.com/quarkusio/quarkus/issues/9635
+    public static <T extends PanacheEntityBase> PanacheQuery<T> find(String query, Object... params) {
+        return (PanacheQuery<T>) JpaOperations.find(Person.class, query, params);
+    }
+
     // For JAXB: both getter and setter are required
     // Here we make sure the field is not used by Hibernate, but the accessor is used by jaxb, jsonb and jackson
     @JsonProperty