[JAVA-28954] Migrate spring-data-jpa-enterprise-2 module to parent-boot-3. (#16054)

This commit is contained in:
Harry9656 2024-03-06 21:53:45 +01:00 committed by GitHub
parent 4b244504d6
commit a28abb7d2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 75 additions and 85 deletions

View File

@ -8,9 +8,9 @@
<parent> <parent>
<groupId>com.baeldung</groupId> <groupId>com.baeldung</groupId>
<artifactId>parent-boot-2</artifactId> <artifactId>parent-boot-3</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../parent-boot-2</relativePath> <relativePath>../../parent-boot-3</relativePath>
</parent> </parent>
<dependencies> <dependencies>
@ -26,6 +26,11 @@
<groupId>com.h2database</groupId> <groupId>com.h2database</groupId>
<artifactId>h2</artifactId> <artifactId>h2</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
@ -33,4 +38,8 @@
</dependency> </dependency>
</dependencies> </dependencies>
<properties>
<start-class>com.baeldung.Application</start-class>
</properties>
</project> </project>

View File

@ -3,11 +3,11 @@ package com.baeldung.elementcollection.model;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import javax.persistence.CollectionTable; import jakarta.persistence.CollectionTable;
import javax.persistence.ElementCollection; import jakarta.persistence.ElementCollection;
import javax.persistence.Entity; import jakarta.persistence.Entity;
import javax.persistence.Id; import jakarta.persistence.Id;
import javax.persistence.JoinColumn; import jakarta.persistence.JoinColumn;
@Entity @Entity
public class Employee { public class Employee {

View File

@ -2,7 +2,7 @@ package com.baeldung.elementcollection.model;
import java.util.Objects; import java.util.Objects;
import javax.persistence.Embeddable; import jakarta.persistence.Embeddable;
@Embeddable @Embeddable
public class Phone { public class Phone {

View File

@ -3,15 +3,15 @@ package com.baeldung.elementcollection.repository;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.persistence.EntityGraph;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.baeldung.elementcollection.model.Employee; import com.baeldung.elementcollection.model.Employee;
import jakarta.persistence.EntityGraph;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
@Repository @Repository
public class EmployeeRepository { public class EmployeeRepository {

View File

@ -1,7 +1,7 @@
package com.baeldung.namingstrategy; package com.baeldung.namingstrategy;
import javax.persistence.Entity; import jakarta.persistence.Entity;
import javax.persistence.Id; import jakarta.persistence.Id;
@Entity @Entity
public class Person { public class Person {

View File

@ -1,10 +1,10 @@
package com.baeldung.namingstrategy; package com.baeldung.namingstrategy;
import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
public class QuotedLowerCaseNamingStrategy extends SpringPhysicalNamingStrategy { public class QuotedLowerCaseNamingStrategy extends CamelCaseToUnderscoresNamingStrategy {
@Override @Override
protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) { protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) {
return new Identifier(name.toLowerCase(), true); return new Identifier(name.toLowerCase(), true);

View File

@ -1,10 +1,10 @@
package com.baeldung.namingstrategy; package com.baeldung.namingstrategy;
import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
public class QuotedUpperCaseNamingStrategy extends SpringPhysicalNamingStrategy { public class QuotedUpperCaseNamingStrategy extends CamelCaseToUnderscoresNamingStrategy {
@Override @Override
protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) { protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) {
return new Identifier(name.toUpperCase(), true); return new Identifier(name.toUpperCase(), true);

View File

@ -1,10 +1,10 @@
package com.baeldung.namingstrategy; package com.baeldung.namingstrategy;
import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
public class UnquotedLowerCaseNamingStrategy extends SpringPhysicalNamingStrategy { public class UnquotedLowerCaseNamingStrategy extends CamelCaseToUnderscoresNamingStrategy {
@Override @Override
protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) { protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) {
return new Identifier(name.toLowerCase(), false); return new Identifier(name.toLowerCase(), false);

View File

@ -1,10 +1,10 @@
package com.baeldung.namingstrategy; package com.baeldung.namingstrategy;
import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy;
import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy;
public class UnquotedUpperCaseNamingStrategy extends SpringPhysicalNamingStrategy { public class UnquotedUpperCaseNamingStrategy extends CamelCaseToUnderscoresNamingStrategy {
@Override @Override
protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) { protected Identifier getIdentifier(String name, boolean quoted, JdbcEnvironment jdbcEnvironment) {
return new Identifier(name.toUpperCase(), false); return new Identifier(name.toUpperCase(), false);

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -73,8 +73,7 @@ class QuotedLowerCaseNamingStrategyH2IntegrationTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class QuotedLowerCaseNamingStrategyPostgresLiveTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class QuotedUpperCaseNamingStrategyH2IntegrationTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -3,15 +3,10 @@ package com.baeldung.namingstrategy;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import java.math.BigInteger;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -22,6 +17,10 @@ import org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfigur
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.TestPropertySource;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query;
@DataJpaTest(excludeAutoConfiguration = TestDatabaseAutoConfiguration.class) @DataJpaTest(excludeAutoConfiguration = TestDatabaseAutoConfiguration.class)
@TestPropertySource("quoted-upper-case-naming-strategy-on-postgres.properties") @TestPropertySource("quoted-upper-case-naming-strategy-on-postgres.properties")
class QuotedUpperCaseNamingStrategyPostgresLiveTest { class QuotedUpperCaseNamingStrategyPostgresLiveTest {
@ -73,8 +72,7 @@ class QuotedUpperCaseNamingStrategyPostgresLiveTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class SpringPhysicalNamingStrategyH2IntegrationTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class SpringPhysicalNamingStrategyPostgresLiveTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class UnquotedLowerCaseNamingStrategyH2IntegrationTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,10 +8,6 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -22,6 +18,10 @@ import org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfigur
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.TestPropertySource;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query;
@DataJpaTest(excludeAutoConfiguration = TestDatabaseAutoConfiguration.class) @DataJpaTest(excludeAutoConfiguration = TestDatabaseAutoConfiguration.class)
@TestPropertySource("unquoted-lower-case-naming-strategy-on-postgres.properties") @TestPropertySource("unquoted-lower-case-naming-strategy-on-postgres.properties")
class UnquotedLowerCaseNamingStrategyPostgresLiveTest { class UnquotedLowerCaseNamingStrategyPostgresLiveTest {
@ -77,8 +77,7 @@ class UnquotedLowerCaseNamingStrategyPostgresLiveTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class UnquotedUpperCaseNamingStrategyH2IntegrationTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -8,9 +8,9 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManager; import jakarta.persistence.EntityManager;
import javax.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import javax.persistence.Query; import jakarta.persistence.Query;
import org.hibernate.exception.SQLGrammarException; import org.hibernate.exception.SQLGrammarException;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
@ -77,8 +77,7 @@ class UnquotedUpperCaseNamingStrategyPostgresLiveTest {
public Person fromDatabase(Object databaseRow) { public Person fromDatabase(Object databaseRow) {
Object[] typedDatabaseRow = (Object[]) databaseRow; Object[] typedDatabaseRow = (Object[]) databaseRow;
return new Person( return new Person((Long) typedDatabaseRow[0],
((BigInteger) typedDatabaseRow[0]).longValue(),
(String) typedDatabaseRow[1], (String) typedDatabaseRow[1],
(String) typedDatabaseRow[2] (String) typedDatabaseRow[2]
); );

View File

@ -3,7 +3,3 @@ spring.datasource.username=postgres
spring.datasource.password=root spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
#spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=default-naming-strategy-ddl.sql

View File

@ -3,7 +3,3 @@ spring.datasource.username=sa
spring.datasource.password= spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
#spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=default-naming-strategy-ddl.sql