diff --git a/persistence-modules/hibernate-exceptions-2/README.md b/persistence-modules/hibernate-exceptions-2/README.md
new file mode 100644
index 000000000000..e320af31b433
--- /dev/null
+++ b/persistence-modules/hibernate-exceptions-2/README.md
@@ -0,0 +1 @@
+### Relevant Articles:
\ No newline at end of file
diff --git a/persistence-modules/hibernate-exceptions-2/pom.xml b/persistence-modules/hibernate-exceptions-2/pom.xml
new file mode 100644
index 000000000000..26559295ded3
--- /dev/null
+++ b/persistence-modules/hibernate-exceptions-2/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+ hibernate-exceptions-2
+ 0.0.1-SNAPSHOT
+ hibernate-exceptions-2
+
+
+ com.baeldung
+ persistence-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ org.hibernate.orm
+ hibernate-core
+ ${hibernate.version}
+
+
+ com.h2database
+ h2
+ ${h2.version}
+
+
+
+
+ 2.3.232
+
+
+
\ No newline at end of file
diff --git a/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/Employee.java b/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/Employee.java
new file mode 100644
index 000000000000..dd94ada57b4d
--- /dev/null
+++ b/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/Employee.java
@@ -0,0 +1,37 @@
+package com.baeldung.hibernate.noargumentforordinalparameter;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+
+@Entity
+public class Employee {
+ @Id
+ private int id;
+ private String firstName;
+ private String lastName;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+}
diff --git a/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/HibernateUtil.java b/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/HibernateUtil.java
new file mode 100644
index 000000000000..397144020297
--- /dev/null
+++ b/persistence-modules/hibernate-exceptions-2/src/main/java/com/baeldung/hibernate/noargumentforordinalparameter/HibernateUtil.java
@@ -0,0 +1,42 @@
+package com.baeldung.hibernate.noargumentforordinalparameter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.boot.Metadata;
+import org.hibernate.boot.MetadataSources;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
+import org.hibernate.service.ServiceRegistry;
+
+public class HibernateUtil {
+ private static SessionFactory sessionFactory;
+
+ public static SessionFactory getSessionFactory() {
+ if (sessionFactory == null) {
+ Map settings = new HashMap<>();
+ settings.put("hibernate.connection.driver_class", "org.h2.Driver");
+ settings.put("hibernate.connection.url", "jdbc:h2:mem:test");
+ settings.put("hibernate.connection.username", "sa");
+ settings.put("hibernate.connection.password", "");
+ settings.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
+ settings.put("hibernate.show_sql", "true");
+ settings.put("hibernate.hbm2ddl.auto", "update");
+
+ try {
+ ServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().applySettings(settings)
+ .build();
+
+ Metadata metadata = new MetadataSources(standardRegistry).addAnnotatedClass(Employee.class)
+ .getMetadataBuilder()
+ .build();
+
+ sessionFactory = metadata.getSessionFactoryBuilder()
+ .build();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return sessionFactory;
+ }
+}
\ No newline at end of file
diff --git a/persistence-modules/hibernate-exceptions-2/src/test/java/com/baeldung/hibernate/noargumentforordinalparameter/NoArgumentForOrdinalParameterUnitTest.java b/persistence-modules/hibernate-exceptions-2/src/test/java/com/baeldung/hibernate/noargumentforordinalparameter/NoArgumentForOrdinalParameterUnitTest.java
new file mode 100644
index 000000000000..2e609a1c5218
--- /dev/null
+++ b/persistence-modules/hibernate-exceptions-2/src/test/java/com/baeldung/hibernate/noargumentforordinalparameter/NoArgumentForOrdinalParameterUnitTest.java
@@ -0,0 +1,59 @@
+package com.baeldung.hibernate.noargumentforordinalparameter;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import org.hibernate.QueryException;
+import org.hibernate.Session;
+import org.hibernate.query.Query;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+class NoArgumentForOrdinalParameterUnitTest {
+
+ private static Session session;
+
+ @BeforeAll
+ static void init() {
+ session = HibernateUtil.getSessionFactory()
+ .openSession();
+ session.beginTransaction();
+ }
+
+ @AfterAll
+ static void clear() {
+ session.close();
+ }
+
+ @Test
+ void whenMissingParameter_thenThrowQueryParameterException() {
+ assertThatThrownBy(() -> {
+ String selectQuery = """
+ FROM Employee
+ WHERE firstName = ?1
+ AND lastName = ?2
+ """;
+ Query query = session.createQuery(selectQuery, Employee.class);
+ query.setParameter(1, "Jean");
+
+ query.list();
+ }).isInstanceOf(QueryException.class)
+ .hasMessageContaining("No argument for ordinal parameter");
+ }
+
+ @Test
+ void whenDefiningAllParameters_thenCorrect() {
+ String selectQuery = """
+ FROM Employee
+ WHERE firstName = ?1
+ AND lastName = ?2
+ """;
+ Query query = session.createQuery(selectQuery, Employee.class);
+ query.setParameter(1, "Jean")
+ .setParameter(2, "Smith");
+
+ assertThat(query.list()).isNotNull();
+ }
+
+}
diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml
index 3ef160203fb7..650fe32c6567 100644
--- a/persistence-modules/pom.xml
+++ b/persistence-modules/pom.xml
@@ -36,6 +36,7 @@
hibernate-mapping-2
hibernate-annotations
hibernate-exceptions
+ hibernate-exceptions-2
hibernate-libraries
hibernate-jpa
hibernate-jpa-2