2014-03-06 1 views
0

나는 모델 이름 제 및 쇼핑라는 이름의 모델을 가지고 있고, 관계 최대 절전 모드 OneToOne과 게으른 가져 오기 문제

@ManyToMany(fetch = FetchType.LAZY) 
@JoinTable(
     name="shop_article", 
     [email protected](name="article_id"), 
     [email protected](name="shop_id") 
) 
private Set<Shop> shops = new HashSet<Shop>(); 

숍 ManyToMany

입니다 :

@ManyToMany(mappedBy="shops", fetch=FetchType.LAZY) 
    private Set<Article> articles = new HashSet<Article>(); 

그리고 내 숍이 관계 OneToOne with Page

판매 :

난 새로운 기사를 추가하려고 할 때 그것의
@OneToOne(fetch=FetchType.LAZY) 
@Cascade({CascadeType.DELETE, CascadeType.DELETE_ORPHAN}) 
@JoinColumn(name = "page_id") 
private Page page; 

내보기에 난 내 상점 모든 페이지 관계를 가져 오는 객체

<form:select path="shops" multiple="true" 
      items="${shops}" itemLabel="name" itemValue="id" /> 

을 사용, 하나 개의 세부 를 제외하고는 잘 작동됩니다. 그러나 컨트롤러에서 sysout 상점 또는 양식 제거 :보기에서 선택, 페치하지 않는 페이지가 올바른지.

어디에 문제가 있습니까? 도움을주기 위해 붙여 넣을 코드는 무엇입니까?

답변

0

게으른로드 문제와 비슷합니다. 나는 당신의 모델을 정말로 이해하지 못한다. 그러나 당신은 페이지를 참조하지 않고 실제로 가게를 원한다? 아마 그렇지 않겠지? 따라서 fetchEAGER으로 변경하고 최대 절전 모드를 사용하는 경우 @Fetch(FetchMode.SELECT)을 추가하십시오.

+0

내 모델에 이해가 가지 않습니까? 아마도 내가 잘못 가입 한 것일까 요? 내가 id를 선택하고 숍에서 이름을 선택 목록보기에서 내가 원하는 모든 관계 개체를 가져 오지 싶어요.
@Fetch (FetchMode.SELECT) - 뭐하는거야? – kuka11