Hibernate не устанавливает внешний ключ в MySQL, даже если отношение установлено в Java - PullRequest
0 голосов
/ 11 июня 2018

У меня есть следующая конфигурация и код в моем весеннем загрузочном приложении, но я не получаю ограничение внешнего ключа в mysql, может кто-нибудь помочь, пожалуйста.

Класс Stock: -

@Entity(name = "stock")
public class Stock {
    @Id
    @Column(name = "p_id")
    private String productId;

    @Column(name="p_desc")
    private String productDescription;

    @Column(name="p_quantity")
    private double productQuantityInStock;

    @Column(name = "p_threshold")
    private double productThresholdQuantity;

    @OneToOne( cascade = CascadeType.ALL)
    @JoinColumn(foreignKey = @ForeignKey(name = "fk_productPrice"),referencedColumnName = "pr_id")
    private ProductPrice productPrice;

    @ManyToMany(mappedBy = "listOfProducts")
    private Set<OrderList> orderLists;

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductDescription() {
        return productDescription;
    }

    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    public double getProductQuantityInStock() {
        return productQuantityInStock;
    }

    public void setProductQuantityInStock(double productQuantityInStock) {
        this.productQuantityInStock = productQuantityInStock;
    }

    public double getProductThresholdQuantity() {
        return productThresholdQuantity;
    }

    public void setProductThresholdQuantity(double productThresholdQuantity) {
        this.productThresholdQuantity = productThresholdQuantity;
    }

    public ProductPrice getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(ProductPrice productPrice) {
        this.productPrice = productPrice;
    }
}

Класс продукта: -

@Entity(name = "productprice")
public class ProductPrice {
    @Id
    @Column(name = "pr_id")
    private String PriceId;

    @Column(name="p_id")
    private String ProductId;

    @Column(name="price")
    private double Price;

    public String getPriceId() {
        return PriceId;
    }

    public void setPriceId(String priceId) {
        PriceId = priceId;
    }

    public String getProductId() {
        return ProductId;
    }

    public void setProductId(String productId) {
        ProductId = productId;
    }

    public double getPrice() {
        return Price;
    }

    public void setPrice(double price) {
        Price = price;
    }
}

Project.properties

enter image description here

Журнал приложения для ограничений

enter image description here

Mysql DDL

enter image description here

Если вы видите mysql ddl, ограничения внешнего ключа нет.Я попробовал это со всеми возможными комбинациями в JoinColumn, и я не мог видеть Внешний ключ.И я узнал, что просто KEY означает индекс в MySQL.Которого я не ожидаю.Любая помощь или материал или указания помогут.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...