Reputation: 1
Can you guys help to check why this is happening. My Postgres in Springboot is not auto create run I run my Java program. SHould be it auto create since I put in my application.properties:
spring.jpa.hibernate.ddl-auto=update
Here is my pom.xml file
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.2</version>
<relativePath/>
</parent>
<groupId>com.hr-software-project</groupId>
<artifactId>hr-management</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hr-management</name>
<description>HR Management Service</description>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<!-- Spring Boot Core Dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- Database -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<!-- JJWT for JWT Authentication -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- Swagger/OpenAPI -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.7.0-RC1</version> <!-- Update version to ensure compatibility -->
</dependency>
<!-- Testing -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Here my application.properties:
spring.application.name=hr-management
# Database Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/hr_service
spring.datasource.username=postgres
spring.datasource.password=admin
#spring.datasource.username=${DB_USERNAME:postgres}
#spring.datasource.password=${DB_PASSWORD:admin}
# JPA & Hibernate
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.generate-ddl=true
# Swagger / OpenAPI
springdoc.api-docs.enabled=true
springdoc.swagger-ui.enabled=true
springdoc.swagger-ui.doc-expansion=LIST # Show controllers expanded but keep endpoints collapsed
springdoc.swagger-ui.tags-sorter=alpha # Sort controllers alphabetically
springdoc.swagger-ui.default-model-expand-depth=99
springdoc.swagger-ui.default-model-rendering=example
My DO somehow something like this:
package com.hr_software_project.hr_management.entity;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "leave_types")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class LeaveTypeDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name; // e.g., Annual Leave, Sick Leave
private Long minServiceMonths; //Months
private Long maxServiceMonths; //Months
private Integer maxDays;
private String expiryDate;
}
This is the app that I run
package com.hr_software_project.hr_management;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaRepositories
@EntityScan(basePackages = "com.hr_software_project.hr_management.entity")
public class HrManagementApplication {
public static void main(String[] args) {
SpringApplication.run(HrManagementApplication.class, args);
}
}
Upvotes: 0
Views: 42