Exception exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails

330
03 мая 2017, 08:58

Исключение при добавлении записи в БД:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (ksis_onlinestore.order, CONSTRAINT customerFK FOREIGN KEY (id_customer) REFERENCES customer (id_customer))

Customer :

package dao;
import javax.persistence.*;
import java.util.Collection;
@Entity
@Table(name = "customer", schema = "ksis_onlinestore", catalog = "")
public class CustomerEntity
{
    @Id
    @Column(name = "id_customer", nullable = false)
    private int idCustomer;
    @Column(name = "first_name", nullable = true, length = 45)
    private String firstName;
    @Column(name = "last_name", nullable = true, length = 45)
    private String lastName;
    @OneToMany(mappedBy = "customer" , cascade = CascadeType.ALL)
    private Collection<CreditCardEntity> creditCards;
    @OneToMany(mappedBy = "customer" , cascade = CascadeType.ALL)
    private Collection<OrderEntity> orders;

    public int getIdCustomer()
    {
        return idCustomer;
    }
    public void setIdCustomer(int idCustomer)
    {
        this.idCustomer = idCustomer;
    }
    public String getFirstName()
    {
        return firstName;
    }
    public void setFirstName(String firstName)
    {
        this.firstName = firstName;
    }
    public String getLastName()
    {
        return lastName;
    }
    public void setLastName(String lastName)
    {
        this.lastName = lastName;
    }
    public Collection<CreditCardEntity> getCreditCards()
    {
        return creditCards;
    }
    public void setCreditCards(Collection<CreditCardEntity> creditCards)
    {
        this.creditCards = creditCards;
    }
    public Collection<OrderEntity> getOrders()
    {
        return orders;
    }
    public void setOrders(Collection<OrderEntity> orders)
    {
        this.orders = orders;
    }
}

Order:

package dao;
import javax.persistence.*;
import java.sql.Date;
import java.sql.Time;
@Entity
@Table(name = "order", schema = "ksis_onlinestore", catalog = "")
public class OrderEntity
{
    @Id
    @Column(name = "id_order", nullable = false)
    private int idOrder;
    @Column(name = "date", nullable = true)
    private Date date;
    @Column(name = "time", nullable = true)
    private Time time;
    @ManyToOne
    @JoinColumn(name = "id_customer", referencedColumnName = "id_customer", nullable = false)
    private CustomerEntity customer;
    public int getIdOrder()
    {
        return idOrder;
    }
    public void setIdOrder(int idOrder)
    {
        this.idOrder = idOrder;
    }
    public Date getDate()
    {
        return date;
    }
    public void setDate(Date date)
    {
        this.date = date;
    }
    public Time getTime()
    {
        return time;
    }
    public void setTime(Time time)
    {
        this.time = time;
    }
    public CustomerEntity getCustomer()
    {
        return customer;
    }
    public void setCustomer(CustomerEntity customer)
    {
        this.customer = customer;
    }
}

В самой БД , у Order есть поле id_customer, которое является вторичным ключом , со свойствами DELETE = CASCADE , UPDATE = CASCADE.

READ ALSO
Создание Servlet&#39;а

Создание Servlet'а

ПриветствуюПодскажите, почему второй вариант кода не принимает компилятор? В чем разница?

380
Почему не работает lazy initialization в hibernate

Почему не работает lazy initialization в hibernate

Не работает ленивая инициализация в hibernateВот классы

333
Рабочий пример кода с onRestoreInstanceState

Рабочий пример кода с onRestoreInstanceState

Напишите кому несложно какой-нибудь рабочий пример кода с сохранением состояния активити и восстановлением состояние при следующем её старте

319
Как подключить документацию javadoc к проекту

Как подключить документацию javadoc к проекту

Расскажите как получить документацию к Yandex MapKit? Из информации в issue говорят "Документация и бибилотека доступна через gradle"

494