Не удалось открыть ссылочную таблицу «письма» - PullRequest
0 голосов
/ 30 апреля 2019

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)

...