Отношение не существует для сущности Spring

#java #spring #hibernate #jpa

Вопрос:

 import javax.persistence.*;   @Table(name = "users")  @Entity  public class User {    @Id  @GeneratedValue(strategy = GenerationType.AUTO)  @Column(name = "userID")  private long userID;  }    @Table(name = "subscriptions")  @Entity  public class Subscription {    @Id  @GeneratedValue(strategy = GenerationType.AUTO)  @Column(name = "subscriptionID")  private long subscriptionID;    @ManyToOne  @JoinColumn(name="userID")  private User user;    }  

Этот код аварийно завершает работу:

Вызвано: org.postgresql.util.Исключение PSQLException: ОШИБКА: связь «подписки» не существует

spring.jpa.свойства.спящий режим.диалект = организация.спящий режим.диалект.PostgreSQLДиалект

spring.jpa.база данных-платформа=org.спящий режим.диалект.PostgreSQL10Dialect spring.jpa.hibernate.ddl-авто=создать-отбросить

spring.источник данных.имя класса драйвера=org.postgresql.Драйвер

Код работает для

 import javax.persistence.*;    @Table(name = "users")  @Entity  public class User {    @Id  @GeneratedValue(strategy = GenerationType.AUTO)  @Column(name = "userID")  private long userID;  }    @Table(name = "subscriptions")  @Entity  public class Subscription {    @Id  @GeneratedValue(strategy = GenerationType.AUTO)  @Column(name = "subscriptionID")  private long subscriptionID;    }  

Как я могу это исправить?

Комментарии:

1. Не могли бы вы проверить, создана ли таблица или возникают ли какие-либо исключения, когда Hibernate создает таблицу?

2. GenerationTarget обнаружила команду принятия исключения : Ошибка при выполнении DDL «ограничение на удаление подписок на таблицы alter FK5ju201bkc08up0b1x2x51mblu» с помощью инструкции JDBC

3. @SimonMartinelli Спасибо, ты помог

Ответ №1:

Просто используйте spring.jpa.hibernate.ddl-auto=update вместо create-drop