Spring Boot автоматически генерирует базу данных MySQLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot автоматически генерирует базу данных MySQL

Сообщение Anonymous »

Я пытаюсь автоматически создать базу данных на основе классов POJO:

Модель директора:

Код: Выделить всё

@Entity
@Table(name = "director")
public class Director extends AuditModel {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "name", nullable = false)
private String name;

@Column(name = "age", nullable = false)
private int age;

@Column(name = "description", nullable = false)
private String description;

@Column(name = "photo", nullable = false)
private String photo;

//Getters & Setters
}
Модель фильма:

Код: Выделить всё

@Entity
@Table(name = "movie")
public class Movie extends AuditModel {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "name", nullable = false)
private String name;

@Column(name = "story", nullable = false)
private String story;

@Column(name = "photo", nullable = false)
private String photo;

@Column(name = "releaseYear", nullable = false)
private int releaseYear;

@Column(name = "rating", nullable = false)
private float rating;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "director", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private Director director;

//Getters & Setters
}
А вот Модель аудита, которая имеет временные поля, такие как созданный_at...

Код: Выделить всё

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
public abstract class AuditModel implements Serializable {
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at", nullable = false, updatable = false, columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
@CreatedDate
private Date createdAt;

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_at", nullable = false, columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
@LastModifiedDate
private Date updatedAt;

// Getters & Setters
}
А вот моя конфигурация в application.properties

Код: Выделить всё

spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot_movies
spring.datasource.username=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jackson.serialization.fail-on-empty-beans=false
Я использую Spring.jpa.hibernate.ddl-auto=update для автоматического создания базы данных.
Теперь база данных генерируется хорошо, но внешний ключ генерируется как простое целочисленное поле.

Подробнее здесь: https://stackoverflow.com/questions/514 ... l-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»