2012-06-09 2 views
0

나는 Hibernate 객체들과 그것의 In Spring MVC 프레임웍을 사용하고있다. 카테고리와 언어 ManyToOne 관계 있음 :Spring의 Hibernate 객체들

@ManyToOne 
@JoinColumn(name="language_id") 
public Language getLanguage() { 
return language; 
} 

내가 선택한 언어로 새 범주를 만드는 작업을 만들고 싶습니다. 이 같은 내 폼보기 : 내가 가지고있는 컨트롤러 POST 방법에

<form:form modelAttribute="addCategory" name="frm" method="post"> 

<form:select path="language.id"> 
<form:options items="${languages}" itemValue="id" itemLabel="name" /> 
</form:select> 

//Other Fields like name etc. 

</form:form> 

:

@RequestMapping(method = RequestMethod.POST, value="/add_category") 
public String addCategory(Category category){ 
//code for save, redirect etc. 
} 

은 가정하자 나는 데이터베이스에 기존 ID = 4와 이름 "영어"와 언어를 선택합니다. metod addCategory에 언어 ID를 표시하고 싶을 때 category.getLanguage(). geiId()) 정확하게 ID가 4이지만, 선택한 언어 이름을 category.getLanguage(). getName으로 표시하고 싶을 때) 나는 널 값이있다.

아마도 Spring 객체 카테고리가 Hibernate의 관계에 대해 아무 것도 모르기 때문입니다. 나는 Hibernate 4, Spring 3을 사용하며 Spring Bean SessionFactory로 Hibernate에 연결하고있다.

Spring 요청시 전체 재귀 객체를 얻을 수 있습니까? 즉, 카테고리 (category.getLanguage())의 언어는 ID가 4이고 이름이 "영어"인 전체 개체가됩니다.

감사합니다.

+1

겨울에는 대개 겨울잠을 자고 있습니다. – ssteinberg

답변

0

왜 카테고리 개체의 언어 개체에 이름이 채워 져야하는지 질문하고 있습니다. 데이터베이스에 범주 개체를 저장하려고 할 때 최대 절전 모드로 참조 목적으로 사용되기 때문입니다.

hibernate를 사용하여 데이터베이스에서 범주 객체를 가져 오면 id와 value를 모두 포함한 언어 객체를 포함하는 객체가 반환됩니다.

여전히 이름을 표시하지 않으려면 user.And에서 선택한대로 jsp 페이지에서 가져 오는 ID를 사용하여 이름을 가져와야하며 그런 다음 범주 개체에 저장된 개체에 해당 이름을 설정해야합니다. 다른 현명한 당신은 path="language.name" 데있는 JSP로 다른 필드가 있어야합니다.

희망이 도움이됩니다. 건배.