Исключение при добавлении записи в БД:
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.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости