私はitineraryTraveller
と呼ばれるエンティティを持ち、itineraryTraveller
はすべてflightEntity
を持つことができます。私は、データベースから、itineraryTraveller
(親)を削除しようとすると、私は、このエラーメッセージが表示されます:@OneToMany関係で親と子の両方を削除します
@Entity
public class itineraryTraveller implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<flightEntity> flights;
@Temporal(javax.persistence.TemporalType.DATE)
private Date departureDate;
private String departureLocation;
private String arrivalLocation;
private double cost;
private char status;
private ArrayList<String> stops;
private String stopPrint;
private String userName;
private int iden;
// ...
}
そしてflightEntity
次のようになります:
a foreign key constraint fails (`pquino01db`.`ITINERARYTRAVELLER_FLIGHTENTITY`, CONSTRAINT `FK_ITINERARYTRAVELLER_FLIGHTENTITY_flights_ID` FOREIGN KEY (`flights_ID`) REFERENCES `FLIGHTENTITY` (`ID`))"
は私itineraryTraveller
エンティティであり、
@Entity
public class flightEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Temporal(javax.persistence.TemporalType.DATE)
private Date departureDate;
private String airlineCode;
private String flightNumber;
private String departureLocation;
private String arrivalLocation;
private double businessCost;
private double economyCost;
private int numBusinessSeats;
private int numEconomySeats;
// ...
}
誰かが問題を見ることができますか?私は自分の@OneToMany
注釈に何かが見つからないかもしれないと思っていますが、私は何がわかりません。私は、親と子の両方を同時に削除したいと思います。あなたはflightEntity
に@JoinColumn
を持っていないようflightEntity
からのマッピングが戻っitineraryTraveller
エンティティに存在しないため、2つのエンティティ間の
作業を行うためにHibernateを使用していますか? – PeterS
JPA Ecliplse glassfishとのリンク – pquin92
私の提案はおそらく無関係ですが、使用するCascadeTypeのタイプを確認してください。Hibernateを使うべきではないかとHibernateのglassfishも同様の問題がありますか?ここをクリックしてください:http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/ – PeterS