Я использую JPA для создания и доступа к базе данных. Моя база данных состоит из двух таблиц? Эти две таблицы имеют отношение @OneToMany
. Однако, когда я запускаю свое приложение, я получаю java.sql.SQLException
.
Я провел некоторые исследования, но ни одно из решений в Интернете, похоже, не работает для меня. Первое решение предлагает заменить @GeneratedValue(strategy=GenerationType.AUTO)
на @GeneratedValue(strategy=GenerationType.IDENTITY)
Второе решение состоит из включения spring.jpa.hibernate.use-new-id-generator-mappings=false
в application.properties.
Ни одно из этих решений не сработало.
Car.java
@Entity
public class Car {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
....
@ManyToOne(fetch = FetchType.LAZY )
@JoinColumn(name = "owner")
private Owner owner;
....
}
Owner.java
@Entity
public class Owner {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long ownerid;
....
@OneToMany(cascade =CascadeType.ALL, mappedBy="owner")
private List<Car> cars;
....
}
application.properties
logging.level.root=INFO
server.port=8080
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mariadb://localhost:3306/cardb
spring.datasource.username=****
spring.datasource.password=*******
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.generate-dll=true
spring.jpa.hibernate.dll-auto=create-drop
Вот Exception
Я получаю:
java.sql.SQLException: Table 'cardb.owner' doesn't exist
РЕДАКТИРОВАТЬ: Я использую MariaDB и база данных называется cardb. Поэтому, когда я запускаю приложение, оно должно создавать cardb.car
, cardb.owner
и cardb.car_owner
Кстати, база данных правильно создается при использовании H2
. Означает ли это, что проблема исходит от MariaDB?