EntityMapping add constraint

159
23 октября 2017, 23:54

Здравствуйте. Пытаюсь строить EntityMapping в Spring boot. Консоль возвращает следующую ошибку:

org.hibernate.tool.schema.spi.SchemaManagementException: Unable to execute schema management to JDBC target [alter table order_list add constraint FKkmi3b4i3e2i97f0umqy911fq9 foreign key (product_id) references order (ord_id)]

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (ord_id)' at line 1

И такая же проблема касается двух других сущностей. Не могу понять из-за чего вылазит ошибка... Связь между сущностями Product и Order должна проходить через таблицу Order_list, в которой содержится идентификаторы сущностей Order и Product. У таблиц User и Product должна быть связь один ко многим.

База данных: Order.java

@Entity
@Table(name="order")
public class Order {
  @Id
  private Long ord_id;
  @ManyToOne
  @JoinColumn(name="customer")
  private User customer;
  private String payment;
  private String delivery;
  private String status;
  private java.sql.Timestamp order_date;
  private String comment;

  @OneToMany(mappedBy = "order")
  private Set<Product> productList;

Product.java

import javax.persistence.*;
import java.util.Set;
@Entity
@Table(name="product")
public class Product {
  @Id
  private Long prod_id;
  private String title;
  @ManyToOne
  @JoinColumn(name="category")
  private Category category;
  @OneToMany(mappedBy = "product")
  private Set<Custom_fields> custom_fields;
  @ManyToOne
  @JoinColumn(name="manufacturer")
  private Manufacturer manufacturer;
  @OneToMany(mappedBy = "product")
  private Set<Product_image> img;
  @OneToMany(mappedBy = "product")
  private Set<Reviews> reviews;
  private Double sale;
  private Double price;
  private Long quantity;
  private java.sql.Timestamp date_added;
  private String description;
  @ManyToOne
  @JoinTable(name="order_list",
          joinColumns={@JoinColumn(name="order_id")},
          inverseJoinColumns={@JoinColumn(name="product_id")})
  private Order order;

User.java

@Entity
@Table(name="user")
public class User {
  @Id
  private Long user_id;
  private String address;
  private String email;
  private String login;
  private String name;
  private String password;
  private Long phone;
  private String role;
  private String surname;
  @OneToMany(mappedBy = "user")
  private Set<Reviews> reviews;
  @OneToMany(mappedBy = "customer")
  private Set<Order> orders;
Answer 1

order - это ключевое слово SQL, таблицу или её поле так назвать нельзя. Измените имя таблицы на что-нибудь другое:

@Entity
@Table(name="order_table")
public class Order {
    ...
}
READ ALSO
почему получается 0 [дубликат]

почему получается 0 [дубликат]

На данный вопрос уже ответили:

138
Как вызвать новое окно?

Как вызвать новое окно?

По нажатию кнопки должна появляться новое окно, и закрываться староеЯ использую контроллеры для каждого FXML

199
Проблема из-за изменение Media ссылок

Проблема из-за изменение Media ссылок

Добрый деньВ своём приложение сделал типа коллекцию музыки воспроизводимой MediaPlayer JavaFX

144