From 29eb3b2a47c52e17fcd161d84cab64a4cdc49748 Mon Sep 17 00:00:00 2001 From: Torge Hamann <37174525+torge-hmn@users.noreply.github.com> Date: Sun, 17 Nov 2024 18:56:55 +0100 Subject: [PATCH] Add basic user entity and repository --- build.gradle.kts | 1 + .../certassist/config/DatabaseConfig.java | 21 +++++++++------- .../de/mlessmann/certassist/models/User.java | 20 ++++++++++++++++ .../repositories/UserRepository.java | 11 +++++++++ .../repositories/UserRepositoryTest.java | 24 +++++++++++++++++++ 5 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 src/main/java/de/mlessmann/certassist/models/User.java create mode 100644 src/main/java/de/mlessmann/certassist/repositories/UserRepository.java create mode 100644 src/test/java/de/mlessmann/certassist/repositories/UserRepositoryTest.java diff --git a/build.gradle.kts b/build.gradle.kts index 7a8e435..22e30f7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,6 +41,7 @@ dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.security:spring-security-test") + testImplementation("org.assertj:assertj-core") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } diff --git a/src/main/java/de/mlessmann/certassist/config/DatabaseConfig.java b/src/main/java/de/mlessmann/certassist/config/DatabaseConfig.java index 38b0276..af7669f 100644 --- a/src/main/java/de/mlessmann/certassist/config/DatabaseConfig.java +++ b/src/main/java/de/mlessmann/certassist/config/DatabaseConfig.java @@ -16,10 +16,14 @@ import java.util.Properties; @Configuration @RequiredArgsConstructor -//@EnableJpaRepositories(basePackages = "de.mlessmann.certassist.repositories") +@EnableJpaRepositories(basePackages = "de.mlessmann.certassist.repositories") @PropertySource("classpath:persistence.properties") public class DatabaseConfig { + private static final String HIBERNATE_DIALECT_PROPERTY = "hibernate.dialect"; + private static final String HIBERNATE_HBM_2_DDL_AUTO_PROPERTY = "hibernate.hbm2ddl.auto"; + private static final String HIBERNATE_SHOW_SQL_PROPERTY = "hibernate.show_sql"; + final Environment env; @Bean @@ -36,7 +40,7 @@ public class DatabaseConfig { public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); entityManagerFactory.setDataSource(dataSource()); - //entityManagerFactory.setPackagesToScan("de.mlessmann.certassist.models"); + entityManagerFactory.setPackagesToScan("de.mlessmann.certassist.models"); entityManagerFactory.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); entityManagerFactory.setJpaProperties(additionalProperties()); return entityManagerFactory; @@ -44,15 +48,16 @@ public class DatabaseConfig { final Properties additionalProperties() { final Properties hibernateProperties = new Properties(); - if (env.getProperty("hibernate.hbm2ddl.auto") != null) { - hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + if (env.getProperty(HIBERNATE_HBM_2_DDL_AUTO_PROPERTY) != null) { + hibernateProperties.setProperty(HIBERNATE_HBM_2_DDL_AUTO_PROPERTY, env.getProperty(HIBERNATE_HBM_2_DDL_AUTO_PROPERTY)); } - if (env.getProperty("hibernate.dialect") != null) { - hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + if (env.getProperty(HIBERNATE_DIALECT_PROPERTY) != null) { + hibernateProperties.setProperty(HIBERNATE_DIALECT_PROPERTY, env.getProperty(HIBERNATE_DIALECT_PROPERTY)); } - if (env.getProperty("hibernate.show_sql") != null) { - hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql")); + if (env.getProperty(HIBERNATE_SHOW_SQL_PROPERTY) != null) { + hibernateProperties.setProperty(HIBERNATE_SHOW_SQL_PROPERTY, env.getProperty(HIBERNATE_SHOW_SQL_PROPERTY)); } + return hibernateProperties; } diff --git a/src/main/java/de/mlessmann/certassist/models/User.java b/src/main/java/de/mlessmann/certassist/models/User.java new file mode 100644 index 0000000..78f77a4 --- /dev/null +++ b/src/main/java/de/mlessmann/certassist/models/User.java @@ -0,0 +1,20 @@ +package de.mlessmann.certassist.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Getter +public class User { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long id; + + @Setter + private String username; +} diff --git a/src/main/java/de/mlessmann/certassist/repositories/UserRepository.java b/src/main/java/de/mlessmann/certassist/repositories/UserRepository.java new file mode 100644 index 0000000..4f12c8b --- /dev/null +++ b/src/main/java/de/mlessmann/certassist/repositories/UserRepository.java @@ -0,0 +1,11 @@ +package de.mlessmann.certassist.repositories; + +import de.mlessmann.certassist.models.User; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends CrudRepository { + + User findUserById(long id); +} diff --git a/src/test/java/de/mlessmann/certassist/repositories/UserRepositoryTest.java b/src/test/java/de/mlessmann/certassist/repositories/UserRepositoryTest.java new file mode 100644 index 0000000..0e6f342 --- /dev/null +++ b/src/test/java/de/mlessmann/certassist/repositories/UserRepositoryTest.java @@ -0,0 +1,24 @@ +package de.mlessmann.certassist.repositories; + +import de.mlessmann.certassist.models.User; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +class UserRepositoryTest { + + @Autowired + private UserRepository userRepository; + + @Test + void findUserById() { + final User user = new User(); + user.setUsername("test"); + userRepository.save(user); + + assertThat(userRepository.findUserById(user.getId()).getUsername()).isEqualTo("test"); + } +}