2013-03-08 4 views
0

오류 : org.hibernate.MappingException : 알 수없는 엔티티 : com.myapp.struts.timesheetForm일괄 업데이트가 업데이트 [0]에서 예기치 않은 행 수를 반환했습니다. 실제 행 수 : 0; 예상 : 1

최대 절전 모드 프레임 워크를 사용하여 스트럿츠의 Action 클래스 내에서 빈 데이터를 저장하려고 할 때 위의 오류가 발생합니다.

주요 파일 :

timeSheet.jsp 
timesheetForm.java 
timeSheetAction.java 

TimeSheetData.java 내 POJO이다.

최대 절전 모드를 사용하여 데이터베이스에서 데이터를 추출하는 것은 쉽고 매력적으로 작동합니다. timeSheet.jsp는 완벽하게 채워집니다.

내 timesheetaction.java는 업데이트 된 데이터를 데이터베이스에 저장할 계획입니다.

양식 데이터를 기반으로 bean 개체를 만듭니다.

은 내가 timesheetdata.java 나는 POJO로의 FormBean의 속성을 복사 할 beanutils를 사용

를 기반으로 개체를 만듭니다.

다음 세션 개체를 통해 업데이트하십시오.

나는 그것의 null 그러나 나가 일할 수있는만큼 thats를 운동했다.

Session sess = HibernateUtil.getSessionFactory().getCurrentSession(); 
sess.beginTransaction(); 
timesheetForm formBean = (timesheetForm)form; 
timeSheetData formData = new TimeSheetData(); 
formBean.setAdditionhours4_1(formBean.getAdditionhours1_1()); 
BeanUtils.copyProperties(formData, formBean); 
sess.update(formData); 
sess.getTransaction().commit(); 
sess.flush(); 
sess.close(); 

답변

1
Session sess = HibernateUtil.getSessionFactory().getCurrentSession(); 

    Transaction tx = sess.beginTransaction(); 
    // extract user data 
    timesheetForm formBean = (timesheetForm)form; 

int count = 0; 
    int loopConstraint = 0; 

    while(loopConstraint < dataList.size()) 
    { 

     int ID = Integer.parseInt(dataList.get(loopConstraint).toString()); 
     TimeSheetData formData = (TimeSheetData) sess.load(TimeSheetData.class, ID); 

    //relevant additions to database 

    sess.update(formData); 
     sess.flush(); 
     sess.clear(); 

    } 
     tx.commit(); 
0

내가 레코드가

+0

나는 데이터베이스에 60 개의 레코드를 가지고 있는데, 콩이 제대로 작동하고 있는지 확인하고 데이터를 통해 / – user1477834

0

당신이 매핑을 최대 절전 모드 확인하시기 바랍니다 업데이트를 사용할 수없는 생각이 문제는 easyly anotations에 갱신 및 삽입 PARAMS을 변경하여 해결할 수 있습니다. 이와

@OneToMany 
@JoinColumn(name = "columnPK", updatable = true, insertable = true) 
private List<ObjectX> relatedElments; 

:

예를 들어, 내 경우에는 내가 변경하여 그것을 해결

@OneToMany 
@JoinColumn(name = "columnPK", updatable = false, insertable = false) 
private List<ObjectX> relatedElments; 

설명은 이것이 당신이 시도하는 동안 관련 테이블을 업데이트 최대 절전 모드를 방지 PARAMS이다 다른 '슈퍼'테이블을 삽입/업데이트합니다. 따라서 모든 최대 절전 모드 표기법을 확인하십시오.

관련 문제