The error is at the end of this post. I get it for mvn spring-boot:run. The app can connect to postgresql succesfully.
Here my spring boot project, if u need any further info, please let me know:
app:
@SpringBootApplication
@EnableJpaRepositories(basePackages = "hackdays2025.poweroutage.repository")
@ComponentScan(basePackages = "hackdays2025.poweroutage")
@EntityScan("hackdays2025.poweroutage.entity")
public class PowerOutageApplication {
public static void main(String[] args) {
SpringApplication.run(PowerOutageApplication.class, args);
}
}
Entity:
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Setter
@Getter
@Entity
@Table(name = "powe_outage")
@NoArgsConstructor
public class Poweroutage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String location;
private String status;
// Getters and Setters
}
repository:
import hackdays2025.poweroutage.entity.Poweroutage;
import .springframework.data.jpa.repository.JpaRepository;
import .springframework.stereotype.Repository;
@Repository
public interface poweroutageRepository extends JpaRepository<Poweroutage, Long> {
}
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
xsi:schemaLocation=".0.0 .0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>hackdays2025</groupId>
<artifactId>power-outage</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>power-outage</name>
<description>Power Outage</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.5</version>
</dependency>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
<version>0.2.1</version>
</dependency>
<dependency>
<groupId>.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.4.0</version> <!-- Check for the latest version -->
</dependency>
<dependency>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
</plugin>
<plugin>
<groupId>.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>hackdays2025.poweroutage.PowerOutageApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>7.8.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/spec/outage-spec.yaml</inputSpec>
<generatorName>spring</generatorName>
<apiPackage>hackdays2025.poweroutage.apispec.api</apiPackage>
<modelPackage>hackdays2025.poweroutage.apispec.model</modelPackage>
<output>${project.build.directory}/generated-sources/openapi</output>
<configOptions>
<dateLibrary>java21</dateLibrary>
<useJakartaEe>true</useJakartaEe>
</configOptions>
<additionalProperties>
<skipDefaultApplication>true</skipDefaultApplication>
<skipDefaultModelImports>true</skipDefaultModelImports> <!-- Optional -->
<supportingFiles>false</supportingFiles> <!-- Deaktiviert andere Hilfsdateien -->
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>${project.build.directory}/generated-sources/openapi</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>
</build>
</project>
DataSourceConfig:
@Configuration
@Profile({"!test"}) // Exclude this bean when the "test" profile is active
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
return DataSourceBuilder.create()
.url("jdbc:postgresql://localhost:5432/mydatabase")
.username("user")
.password("pass")
.driverClassName(".postgresql.Driver")
.build();
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan("hackdays2025.poweroutage.entity.PowerOutage");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
em.setJpaProperties(additionalProperties());
return em;
}
private Properties additionalProperties() {
Properties properties = new Properties();
properties.setProperty("hibernate.dialect", ".hibernate.dialect.PostgreSQLDialect");
properties.setProperty("hibernate.show_sql", "true");
properties.setProperty("spring.jpa.hibernate.ddl-auto", "update");
return properties;
}
}
error:
Caused by: java.lang.IllegalArgumentException: Not a managed type: class hackdays2025.poweroutage.entity.Poweroutage at .hibernate.metamodel.model.domain.internal.JpaMetamodelImpl.managedType(JpaMetamodelImpl.java:193)
~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at .hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.managedType(MappingMetamodelImpl.java:468) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at .hibernate.metamodel.model.domain.internal.MappingMetamodelImpl.managedType(MappingMetamodelImpl.java:98) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at .springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.(JpaMetamodelEntityInformation.java:82) ~[spring-data-jpa-3.2.3.jar:3.2.3] at .springframework.data.jpa.repository.support.JpaEntityInformationSupport.getEntityInformation(JpaEntityInformationSupport.java:69) ~[spring-data-jpa-3.2.3.jar:3.2.3]