0
我在我的web應用程序中有兩個實體。一個是UserDetails,另一個是OrderDetails。在休眠時不刪除子行
@Entity
@Table(name="USER_DETAILS")
public class UserDetails {
@OneToMany(cascade=CascadeType.ALL,orphanRemoval=true)
@JoinTable(name="USER_CART",
[email protected](name="USER_ID"),
[email protected](name="CART_ID")
)
private Collection<CartList> cartList= new ArrayList<CartList>();
public Collection<CartList> getCartList() {
return cartList;
}
public void setCartList(Collection<CartList> cartList) {
this.cartList = cartList;
}
}
而我試圖通過以下代碼從UserDetails中刪除CartList。
List<CartList> cartLists=new ArrayList<>();
try{
Query<CartList> query=session.createQuery("from UserDetails where userEmail=?");
query.setString(0, user);
cartLists=query.list();
System.out.print(String.valueOf(cartLists));
for(CartList temp:cartLists){
session.delete(temp);
}
session.getTransaction().commit();
}catch (Exception e) {
return "unsuccessful";
}
但是下面的代碼會拋出錯誤。
WARN [http-nio-8080-exec-6] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions SQL Error: 1451, SQLState: 23000
ERROR [http-nio-8080-exec-6] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions Cannot delete or update a parent row: a foreign key constraint fails (`ebdb`.`USER_CART`, CONSTRAINT `FKcdargk7kuorrqnumdp06jtqua` FOREIGN KEY (`CART_ID`) REFERENCES `CART_LIST` (`id`))
INFO [http-nio-8080-exec-6] org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.release HHH000010: On release of batch it still contained JDBC statements
ERROR [http-nio-8080-exec-6] org.hibernate.internal.ExceptionMapperStandardImpl.mapManagedFlushFailure HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement]
請幫助我。我不明白我在做什麼錯。請幫助我。
我想從孩子table.what只刪除行將是最好的way.I我無法找到互聯網上的任何also.It成爲我的累贅。 –