1 У пользователя должно быть много писем, но он не создает мою почтовую таблицу, когда я запускаю приложение весенней загрузки (оно создает пользователей, роли, users_roles, users_mails)
Мой класс User.Я попытался с mappedBy = "user", но я также не создаю свою таблицу users_mail.
@Entity
@Table(name="users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
private String email;
private String password;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(
name = "user_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(
name = "role_id", referencedColumnName = "id"))
private Collection < Role > roles;
@OneToMany
private List<Mail > mails;
public User() {}
public User(String firstName, String lastName, String email, String password, Collection<Role> roles, List<Mail> mails) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.roles = roles;
this.mails = mails;
}
}
Мой класс роли.
@Entity
@Table(name="roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
public Role() {}
}
Моя почта класс.
@Entity
@Table(name="mails")
public class Mail {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
@ManyToOne
private User user;
private String subject;
private String from;
private String text;
public Mail() {
}
public Mail(String destination,String subject, String text) {
this.from = destination;
this.subject=subject;
this.text = text;
}
}
Мои application.properties. Не говорите мне, пожалуйста, использовать ... ddl-auto = update.Это головная боль.
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp spring.datasource.url = jdbc:mysql://localhost:3306/users_app?useSSL=false spring.datasource.username = root spring.datasource.password = 123456 spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
Ошибка моего кода:: GenerationTarget обнаружил команду принятия исключения: Ошибка выполнения DDL с помощью инструкции JDBC
org.hibernate.tool.schema.spi.CommandAcceptanceException: Ошибка выполнения DDLс помощью инструкции JDBC
Hibernate: изменить таблицу users_mails отбросить внешний ключ FKl5thenbbsfpv2fv7etw9o800n 2019-04-30 19: 31: 27.017 WARN 7004 --- [restartedMain] ohtsiExceptionHandlerLoggedImpl: возникла ошибка при получении команды DDD
Причина: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'FKl5thenbbsfpv2fv7etw9o800n';проверьте, что столбец / ключ существует
Но он начинается.
.... Запустил приложение MailApplication за 8,654 секунды (JVM работает для 9,887)