2014-03-30 3 views
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(); 
    } 
+1

는 실제로 무엇을 요구 했는가? 방금 코드 및 예외 메시지를 게시하십시오 – Mysterion

+0

하위 범주가 데이터베이스에 없을 것입니다. – chrylis

답변

0

행은 아마도 널을 산출 : 하위 카테고리 하위 = (하위 카테고리)에 Session.get (SubCategory.class 이드); 삭제할 때

이 예외를 제공합니다 : 것은 Session.delete (하위 카테고리)

관련 문제