I am trying to create my very first api using spring boot and a H2 database in order to do some CRUD operations, I have a data.sql file in order to create the employe table and insert some values I also configure H2 database in the application.properrties file as so:spring.h2.console.enabled=true in order to see the data.And everything go as planned I can see my data in the localhost. The problem is that after I add my model class Employe.java i can't see my data anymore the table has no value anymore.
import lombok.Data;
import javax.persistence.*;
@Data
@Entity
@Table(name = "employees")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
private String mail;
private String password;
}
You can either manage ddl-auto property or exclude DataSourceAutoConfiguration by adding autoconfigure.exclude to control DDLs
The problem was because of the spring boot version, With Spring Boot 2.5.1 and above it seems like the data.sql file is executed before the model class which explain that the values are deleted. For anyone who face the same problem as me please refer to the next ressource: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes
So you should either downgrade your spring boot version or add spring.jpa.hibernate.ddl-auto= none in the application.properties file
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.