Я создал многомодульный проект SpringBoot.
Базовую c структуру проекта можно найти здесь .
Теперь я пытаюсь создать таблицы, используя Спящий режим в модуле модели.
Предварительные требования:
база данных в среде docker:
docker run --name postgres -e POSTGRES_PASSWORD=user -e POSTGRES_USER=user -e POSTGRES_DB=postgres -p 5432:5432 -d postgres
модель / пом. xml :
<project ...>
...
<dependencies>
<!--general-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--persistence-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
</dependencies>
</project>
модель / src / main / resources / application-model.properties:
# spring datasource
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=user
spring.datasource.password=user
# hibernate
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto = update
модель / src / main / java / model / ModelConfig. java:
...
@SpringBootApplication
@EntityScan("com.test.model.*")
@PropertySource("classpath:application-model.properties")
public class ModelConfig {
}
модель / src / main / java / model / MyEntity. java:
...
@Entity
@Data
public class MyEntity {
@Id
@GeneratedValue
private long id;
@Column
private String text;
}
web / src / main / java / web / WebConfig. java:
...
@Configuration
@ComponentScan("com.test.*")
public class WebConfig {
}
WebConfig - это класс конфигурации, который находится рядом с WebApplication. java, у которого есть основная функция приложения. Таким образом, @ComponentScan("com.test.*")
в WebConfig также должен сканировать в com.test.model и находить bean-компонент ModelConfig, что на самом деле так:
taken from Intellij
In ModelConfig the annotation @EntityScan("com.test.model.*")
should search for entities in com.test.model.*, which is the case for MyEntity.java.
Error:
Actually there is no error, #mvn clean install
runs and builds everything and I can run the application without getting any error messages as you can see на выходе . Но таблица не сгенерирована.
Ожидания:
Я ожидаю, что эта настройка создаст таблицу с именем , с полем id с автогенерацией и полем с именем text с varchar (255), которые являются значениями по умолчанию @GeneratedValue
и @Column
в MyEntity. java.
Заранее спасибо.