0
데이터베이스에서 항목을 삭제/업데이트 할 수 없습니다.이 예외는 항목을 삭제하려고하면 발생합니다. 이 양식은 MainCategory 클래스의 콤보 상자 값을 가져 와서 MainCtegory의 외래 키. 삭제/업데이트를 허용하지 않는 이유입니다.java.lang.IllegalArgumentException : null 엔터티가있는 삭제 이벤트를 만들려고 시도했습니다.
패키지 com.auction의 management.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "SubCategory")
public class SubCategory {
@Id
@Column(name = "usbId",nullable = false,unique = true)
@GeneratedValue(strategy = GenerationType.AUTO)
private int subid;
@Column(name = "subName")
private String subName;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id",nullable = false)
private MainCategory mainCategory;
public MainCategory getMainCategory() {
return mainCategory;
}
public void setMainCategory(MainCategory mainCategory) {
this.mainCategory = mainCategory;
}
public SubCategory() {
}
public int getSubid() {
return subid;
}
public void setSubid(int subid) {
this.subid = subid;
}
public String getSubName() {
return subName;
}
public void setSubName(String subName) {
this.subName = subName;
}
}
public static boolean deleteSubCategory(int id){
boolean status=false;
Session session=HibernateUtil.getSessionFactory().openSession();
Transaction transaction=null;
try {
transaction=session.beginTransaction();
SubCategory subcategory=(SubCategory)session.get(SubCategory.class,id);
session.delete(subcategory);
transaction.commit();
status=true;
} catch (Exception e) {
e.printStackTrace();
transaction.rollback();
status=false;
}
finally{
session.close();
}
return status;
}
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt)
{
boolean b=SubCategoryDao.deleteSubCategory(id);
if(b)
{
JOptionPane.showMessageDialog(this,"Type Deleted Successfully");
Category=SubCategoryDao.getAllCategories();
fillTable();
clear();
}else
{
JOptionPane.showMessageDialog(this,"Not Delete");
}
}
private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
String name=txtSubCategory.getText();
SubCategory scategory=new SubCategory();
scategory.setSubName(name);
scategory.setSubid(id);
SubCategoryDao.updateSubCategory(scategory);
Category=SubCategoryDao.getAllCategories();
fillTable();
clear();
}
는 실제로 무엇을 요구 했는가? 방금 코드 및 예외 메시지를 게시하십시오 – Mysterion
하위 범주가 데이터베이스에 없을 것입니다. – chrylis