I am using JPA, Hibernate and MySQL
and I am getting following exception
Cannot add or update a child row: a foreign key constraint fails
@Entity
@Table(name = "my_payment_request")
public class Request implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy = "request",cascade=CascadeType.ALL)
private List<PaymentItem> paymentItems;
}
@Entity
@Table(name = "my_payment_item")
public class PaymentItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToOne
@JoinColumn(name = "request_id", nullable=true)
private Request request;
}
public class Manager {
Request request = new Request();
List<PaymentItem> paymentItems = new ArrayList<PaymentItem>();
PaymentItem paymentItem1 = new PaymentItem();
paymentItem1.setRequest(request);
PaymentItem paymentItem2 = new PaymentItem();
paymentItem2.setRequest(request);
paymentItems.add(paymentItem1);
paymentItems.add(paymentItem2);
request.setPaymentItems(paymentItems);
}
Hibernate code
Session session = sessionFactory.openSession();
session.beginTransaction();
request.setId((Long) session.save(request));
session.getTransaction().commit();
Turn this off by adding this before the insert command:
SET foreign_key_checks = 0;
then set it back after your inserts:
SET foreign_key_checks = 1;
Just make sure you know what you are doing.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.