2013-03-13 6 views
0

내가 Enquiry.java 및 EnquiryItem.java최대 절전 모드 OneTOMany 매핑 오류

enuiry 내가 EnquiryItems에서 해당 항목을 저장하고 생성

라는 2 종류가 있습니다.

아래는 매핑 파일을 POJO 클래스로 나타낸 것입니다.

Enquiry.java

@OneToMany(fetch=FetchType.LAZY,cascade = CascadeType.ALL,mappedBy="enquiryId") 
@JoinColumn(name = "enq_id", referencedColumnName = "id") 
private List<EnquiryItem> enquiryItems=new ArrayList<EnquiryItem>(); 

EnquiryItem.java

@ManyToOne 
@JoinColumn(name="enq_id") 
private Enquiry enquiryId; 

내가 잘못하고있는 중이 야 어디 찾을 수 없습니다입니다. 도와주세요.

EDIT : 조회가 저장되면 enquiry_id가 데이터베이스에 null을 저장 중입니다.

+0

당신이 내가 잘못하고있는 중이 야 어디 파악 드릴 수 없습니다 – Krushna

+0

을 받고 예외의 어떤 종류. 제발 도와주세요 –

+0

@Krushna enq_id가 데이터베이스에 null 인 것을 제외하고는 예외가 없습니다. –

답변

2

문제는 데이터베이스에 저장하기 전에 enquiryId를 설정해야한다는 것입니다. 이것은 mappedBy 속성을 사용했기 때문에 필요합니다. 네가해야 할 일은.

EnquiryItem 개체를 목록에 추가 할 때 setter 메서드를 호출하여 enquiryId를 설정하십시오. 편집 :

다음과 같은 :

EnquiryItem.setEnquiryId(enquiry) 

편집 2 :

Enquiry enquiry= new Enquiry(bus,prListNo,enquiryNo,user,new java.util.Date(),enquiryItemsList); 
for(EnquiryItem item:enquiryItemsList) 
item.setEnquiryId(enquiry); 
+0

삽입 할 때 데이터베이스가 생성 할 때 ID를 손에 넣지 않아도됩니다. 그래서 독자적으로 처리해야합니다. –

+0

데이터베이스 생성 ID를 설정하는 것이 아닙니다. EnquiryItem.setEnquiryId (EnquiryItem.setEnquiryId)와 같은 EnquiryItem 클래스에 문의하는 것을 말하고있다. (문의 문의) – Krushna

+0

이것은 내가 생성하는 방법이다. 문의 예 = 문의 새로운 = 문의 (버스, 프라이리스트 아니, 등록, 사용자, 새 자바 .util.Date(), enquiryItemsList); 여기서 enquiryItemsList는 EnquiryItem입니다. 이제 어떻게 설정할 수 있습니까? –