diff --git a/command-query-responsibility-segregation/pom.xml b/command-query-responsibility-segregation/pom.xml
index c3c277dd0b80..4babeda1698c 100644
--- a/command-query-responsibility-segregation/pom.xml
+++ b/command-query-responsibility-segregation/pom.xml
@@ -54,17 +54,12 @@
org.hibernate
hibernate-core
- 5.6.15.Final
+ 6.4.4.Final
org.glassfish.jaxb
jaxb-runtime
- 2.3.3
-
-
- javax.xml.bind
- jaxb-api
- 2.3.1
+ 4.0.5
diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java
index b4a368c98319..166d56bd93e1 100644
--- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java
+++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java
@@ -40,9 +40,9 @@ public class CommandServiceImpl implements CommandService {
private Author getAuthorByUsername(String username) {
Author author;
try (var session = sessionFactory.openSession()) {
- var query = session.createQuery("from Author where username=:username");
+ var query = session.createQuery("from Author where username=:username", Author.class);
query.setParameter("username", username);
- author = (Author) query.uniqueResult();
+ author = query.uniqueResult();
}
if (author == null) {
HibernateUtil.getSessionFactory().close();
@@ -54,9 +54,9 @@ private Author getAuthorByUsername(String username) {
private Book getBookByTitle(String title) {
Book book;
try (var session = sessionFactory.openSession()) {
- var query = session.createQuery("from Book where title=:title");
+ var query = session.createQuery("from Book where title=:title", Book.class);
query.setParameter("title", title);
- book = (Book) query.uniqueResult();
+ book = query.uniqueResult();
}
if (book == null) {
HibernateUtil.getSessionFactory().close();
@@ -70,7 +70,7 @@ public void authorCreated(String username, String name, String email) {
var author = new Author(username, name, email);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.save(author);
+ session.persist(author);
session.getTransaction().commit();
}
}
@@ -81,7 +81,7 @@ public void bookAddedToAuthor(String title, double price, String username) {
var book = new Book(title, price, author);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.save(book);
+ session.persist(book);
session.getTransaction().commit();
}
}
@@ -92,7 +92,7 @@ public void authorNameUpdated(String username, String name) {
author.setName(name);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.update(author);
+ session.merge(author);
session.getTransaction().commit();
}
}
@@ -103,7 +103,7 @@ public void authorUsernameUpdated(String oldUsername, String newUsername) {
author.setUsername(newUsername);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.update(author);
+ session.merge(author);
session.getTransaction().commit();
}
}
@@ -114,7 +114,7 @@ public void authorEmailUpdated(String username, String email) {
author.setEmail(email);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.update(author);
+ session.merge(author);
session.getTransaction().commit();
}
}
@@ -125,7 +125,7 @@ public void bookTitleUpdated(String oldTitle, String newTitle) {
book.setTitle(newTitle);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.update(book);
+ session.merge(book);
session.getTransaction().commit();
}
}
@@ -136,7 +136,7 @@ public void bookPriceUpdated(String title, double price) {
book.setPrice(price);
try (var session = sessionFactory.openSession()) {
session.beginTransaction();
- session.update(book);
+ session.merge(book);
session.getTransaction().commit();
}
}
diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java
index 03155d67a30b..d4271d952dd1 100644
--- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java
+++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java
@@ -24,10 +24,11 @@
*/
package com.iluwatar.cqrs.domain.model;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@@ -42,7 +43,9 @@ public class Author {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
+ @Column(unique = true)
private String username;
+
private String name;
private String email;
diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java
index 2e2c356528e9..0d08f2235fec 100644
--- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java
+++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java
@@ -24,11 +24,12 @@
*/
package com.iluwatar.cqrs.domain.model;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.ManyToOne;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@@ -46,7 +47,9 @@ public class Book {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
+ @Column(unique = true)
private String title;
+
private double price;
@ManyToOne private Author author;
diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java
index 60847d1c6db6..0e88fae91c54 100644
--- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java
+++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java
@@ -48,7 +48,8 @@ public Author getAuthorByUsername(String username) {
Query sqlQuery =
session.createQuery(
"select new com.iluwatar.cqrs.dto.Author(a.name, a.email, a.username)"
- + " from com.iluwatar.cqrs.domain.model.Author a where a.username=:username");
+ + " from com.iluwatar.cqrs.domain.model.Author a where a.username=:username",
+ Author.class);
sqlQuery.setParameter(AppConstants.USER_NAME, username);
authorDto = sqlQuery.uniqueResult();
}
@@ -62,7 +63,8 @@ public Book getBook(String title) {
Query sqlQuery =
session.createQuery(
"select new com.iluwatar.cqrs.dto.Book(b.title, b.price)"
- + " from com.iluwatar.cqrs.domain.model.Book b where b.title=:title");
+ + " from com.iluwatar.cqrs.domain.model.Book b where b.title=:title",
+ Book.class);
sqlQuery.setParameter("title", title);
bookDto = sqlQuery.uniqueResult();
}
@@ -77,7 +79,8 @@ public List getAuthorBooks(String username) {
session.createQuery(
"select new com.iluwatar.cqrs.dto.Book(b.title, b.price)"
+ " from com.iluwatar.cqrs.domain.model.Author a, com.iluwatar.cqrs.domain.model.Book b "
- + "where b.author.id = a.id and a.username=:username");
+ + "where b.author.id = a.id and a.username=:username",
+ Book.class);
sqlQuery.setParameter(AppConstants.USER_NAME, username);
bookDtos = sqlQuery.list();
}
@@ -92,9 +95,10 @@ public BigInteger getAuthorBooksCount(String username) {
session.createNativeQuery(
"SELECT count(b.title)"
+ " FROM Book b, Author a"
- + " where b.author_id = a.id and a.username=:username");
+ + " where b.author_id = a.id and a.username=:username",
+ Long.class);
sqlQuery.setParameter(AppConstants.USER_NAME, username);
- bookcount = (BigInteger) sqlQuery.uniqueResult();
+ bookcount = BigInteger.valueOf(sqlQuery.uniqueResult());
}
return bookcount;
}
@@ -103,8 +107,8 @@ public BigInteger getAuthorBooksCount(String username) {
public BigInteger getAuthorsCount() {
BigInteger authorcount;
try (var session = sessionFactory.openSession()) {
- var sqlQuery = session.createNativeQuery("SELECT count(id) from Author");
- authorcount = (BigInteger) sqlQuery.uniqueResult();
+ var sqlQuery = session.createNativeQuery("SELECT count(id) from Author", Long.class);
+ authorcount = BigInteger.valueOf(sqlQuery.uniqueResult());
}
return authorcount;
}
diff --git a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java
index 8230f975cb78..7d4160790a99 100644
--- a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java
+++ b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java
@@ -24,7 +24,7 @@
*/
package com.iluwatar.dependency.injection;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
/**
* GuiceWizard implements inversion of control. Its dependencies are injected through its
diff --git a/metadata-mapping/pom.xml b/metadata-mapping/pom.xml
index 7aa802d7ff2a..9bfa9711d1ae 100644
--- a/metadata-mapping/pom.xml
+++ b/metadata-mapping/pom.xml
@@ -55,11 +55,6 @@
hibernate-core
6.6.11.Final
-
- javax.xml.bind
- jaxb-api
- 2.4.0-b180830.0359
-
org.glassfish.jaxb
jaxb-runtime
diff --git a/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java b/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java
index 61483e9dedcf..bc95cc3b20e5 100644
--- a/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java
+++ b/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java
@@ -27,7 +27,7 @@
import java.util.HashMap;
import java.util.Map;
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Repository;
/** Data repository to keep or store data. */
diff --git a/polling-publisher/pom.xml b/polling-publisher/pom.xml
index 7cf4c83bae7d..778fd7b37d3d 100644
--- a/polling-publisher/pom.xml
+++ b/polling-publisher/pom.xml
@@ -83,11 +83,11 @@
${spring-boot.version}
-
+
- javax.annotation
- javax.annotation-api
- 1.3.2
+ jakarta.annotation
+ jakarta.annotation-api
+ 3.0.0
diff --git a/pom.xml b/pom.xml
index 87aa35d6aa1e..f1051f5ee78a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,8 +39,8 @@
UTF-8
- 3.4.5
- 5.11.4
+ 3.5.14
+ 5.12.2
5.14.2
1.5.18
2.0.17
@@ -313,6 +313,12 @@
${system-lambda.version}
test
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+ test
+
org.junit.jupiter
junit-jupiter-engine
diff --git a/service-layer/pom.xml b/service-layer/pom.xml
index 37795dae301a..37d4370a8f30 100644
--- a/service-layer/pom.xml
+++ b/service-layer/pom.xml
@@ -56,11 +56,6 @@
jaxb-runtime
4.0.5
-
- javax.xml.bind
- jaxb-api
- 2.4.0-b180830.0359
-
jakarta.persistence
jakarta.persistence-api