diff --git a/spring-boot-rest/pom.xml b/spring-boot-rest/pom.xml
index 71916900a4..2fd05ef394 100644
--- a/spring-boot-rest/pom.xml
+++ b/spring-boot-rest/pom.xml
@@ -11,9 +11,9 @@
com.baeldung
- parent-boot-2
+ parent-boot-3
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../parent-boot-3
@@ -144,8 +144,8 @@
- org.glassfish.jaxb
- jaxb-runtime
+ com.sun.xml.bind
+ jaxb-impl
${jaxb-runtime.version}
@@ -164,6 +164,6 @@
1.4.11.1
3.2.0
3.3.0
- 2.3.7
+ 4.0.1
diff --git a/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java b/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
index c8af731bc5..02f33bc5db 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/persistence/model/Foo.java
@@ -2,12 +2,12 @@ package com.baeldung.persistence.model;
import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Version;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Version;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@@ -16,7 +16,7 @@ import com.thoughtworks.xstream.annotations.XStreamAlias;
public class Foo implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
diff --git a/spring-boot-rest/src/main/java/com/baeldung/persistence/service/common/AbstractService.java b/spring-boot-rest/src/main/java/com/baeldung/persistence/service/common/AbstractService.java
index f589eaecf5..fcf5426438 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/persistence/service/common/AbstractService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/persistence/service/common/AbstractService.java
@@ -5,7 +5,7 @@ import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
-import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import com.baeldung.persistence.IOperations;
@@ -57,6 +57,6 @@ public abstract class AbstractService implements IOperat
getDao().deleteById(entityId);
}
- protected abstract PagingAndSortingRepository getDao();
+ protected abstract JpaRepository getDao();
}
diff --git a/spring-boot-rest/src/main/java/com/baeldung/persistence/service/impl/FooService.java b/spring-boot-rest/src/main/java/com/baeldung/persistence/service/impl/FooService.java
index 299e5ec214..9a8f48ba6e 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/persistence/service/impl/FooService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/persistence/service/impl/FooService.java
@@ -1,19 +1,17 @@
package com.baeldung.persistence.service.impl;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.repository.PagingAndSortingRepository;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
import com.baeldung.persistence.dao.IFooDao;
import com.baeldung.persistence.model.Foo;
import com.baeldung.persistence.service.IFooService;
import com.baeldung.persistence.service.common.AbstractService;
import com.google.common.collect.Lists;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
@@ -29,7 +27,7 @@ public class FooService extends AbstractService implements IFooService {
// API
@Override
- protected PagingAndSortingRepository getDao() {
+ protected JpaRepository getDao() {
return dao;
}
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
index 88e9ef67bb..e3719c8b10 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
@@ -2,16 +2,16 @@ package com.baeldung.springpagination.model;
import java.util.Date;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
@Entity
public class Post {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
index 44f8f41aff..3469fc19b3 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
@@ -1,15 +1,15 @@
package com.baeldung.springpagination.model;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
@Entity
public class Preference {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String timezone;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java
index 80598ae07d..50e9d534c6 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java
@@ -1,10 +1,10 @@
package com.baeldung.springpagination.model;
-import javax.persistence.Column;
-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;
@Entity
public class Subject {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
index 4d33834b28..1dc06210da 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
@@ -1,16 +1,16 @@
package com.baeldung.springpagination.model;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToOne;
@Entity
public class User {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
index 62f05f8262..c50ddcdf48 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
@@ -4,7 +4,6 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import com.baeldung.springpagination.model.Post;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
index bb4869dd33..faa3d124b3 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
@@ -42,6 +42,6 @@ public class PostService implements IPostService {
@Override
public Post getPostById(Long id) {
- return postRepository.getOne(id);
+ return postRepository.getReferenceById(id);
}
}
diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/config/MyErrorController.java b/spring-boot-rest/src/main/java/com/baeldung/web/config/MyErrorController.java
index 05150716f6..df6418fee3 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/web/config/MyErrorController.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/web/config/MyErrorController.java
@@ -2,7 +2,7 @@ package com.baeldung.web.config;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java b/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java
index a09878fb84..54fb4faab4 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java
@@ -2,7 +2,7 @@ package com.baeldung.web.controller;
import java.util.List;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/controller/RootController.java b/spring-boot-rest/src/main/java/com/baeldung/web/controller/RootController.java
index d618e9f0bf..32671ef225 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/web/controller/RootController.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/web/controller/RootController.java
@@ -2,8 +2,8 @@ package com.baeldung.web.controller;
import java.net.URI;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/controller/students/StudentService.java b/spring-boot-rest/src/main/java/com/baeldung/web/controller/students/StudentService.java
index d923f4f14f..88e59727d1 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/web/controller/students/StudentService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/web/controller/students/StudentService.java
@@ -19,7 +19,7 @@ public class StudentService {
new Student(2, "Sebastian","Bach"),
new Student(3, "Pablo","Picasso"),
}).stream()
- .collect(Collectors.toConcurrentMap(s -> s.getId(), Function.identity()));
+ .collect(Collectors.toConcurrentMap(Student::getId, Function.identity()));
// DB id sequence mock
private AtomicLong sequence = new AtomicLong(3);
diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java b/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java
index 2e2672f510..1726e00dff 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseEntityExceptionHandler.java
@@ -1,13 +1,14 @@
package com.baeldung.web.error;
-import javax.persistence.EntityNotFoundException;
-
+import com.baeldung.web.exception.MyResourceNotFoundException;
+import jakarta.persistence.EntityNotFoundException;
import org.hibernate.exception.ConstraintViolationException;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -16,8 +17,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-import com.baeldung.web.exception.MyResourceNotFoundException;
-
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@@ -42,14 +41,14 @@ public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionH
}
@Override
- protected ResponseEntity