2013-06-05 5 views
1

기본 키가 emp_id 인 두 개의 테이블이 있습니다. 저는 Spring, Hibernate, MVC를 사용하고 있습니다.최대 절전 모드 스프링 조인

도메인 파일 :

@Override 
public List<Employee_Domain> findEmployeeByDomain1(String domain_name) { 
    Criteria criteria = getSession().createCriteria(Employee_Domain.class); 
    criteria.setFetchMode("EMP_DETAILS", FetchMode.JOIN); 
    criteria.add(Restrictions.eq("domain_name", domain_name)); 
    return criteria.list(); 
} 

이 함수를 호출 MVC 메신저를 사용하고 개체를 전달하는 것은 인쇄에 JSP하기 :

public class Employee_Domain { 

private static final long serialVersionUID = 1L; 

private Integer emp_id; 
private String domain_name; 

@OneToOne @PrimaryKeyJoinColumn 
private Employee empDomObj; 
    @Id 
@Column(name = "EMP_ID", unique = true, nullable = false) 
public Integer getEmp_id() { 
    return emp_id; 
} 

public void setEmp_id(Integer emp_id) { 
    this.emp_id = emp_id; 
} 

@Column(name = "DOMAIN_NAME", unique = false, nullable = true, length = 200) 
public String getDomain_name() { 
    return domain_name; 
} 

public void setDomain_name(String domain_name) { 
    this.domain_name = domain_name; 
} 
    } 

public class Employee implements java.io.Serializable{ 

/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

private Integer emp_id; 
private String emp_name; 
private String emp_role; 

@OneToOne @PrimaryKeyJoinColumn 
private Employee_Domain empDomObj; 


@Id 
@Column(name = "EMP_ID", unique = true, nullable = false) 
public Integer getEmp_id() { 
    return emp_id; 
} 

public void setEmp_id(Integer emp_id) { 
    this.emp_id = emp_id; 
} 

@Column(name = "EMP_NAME", unique = false, nullable = false, length = 500) 
public String getEmp_name() { 
    return emp_name; 
} 

public void setEmp_name(String emp_name) { 
    this.emp_name = emp_name; 
} 

@Column(name = "ROLE", unique = false, nullable = false, length = 100) 
public String getEmp_role() { 
    return emp_role; 
} 

public void setEmp_role(String emp_role) { 
    this.emp_role = emp_role; 
} 

내 domainDao 구현하는 것은 같은 것입니다 그것. 어떤이 일어나고 조인 이유

select this_.EMP_ID as EMP1_3_0_, this_.DOMAIN_NAME as DOMAIN2_3_0_ from EMPLOYEE_DOMAIN_MAPPING this_ where this_.DOMAIN_NAME=? 

:

이 간단한 SQL 쿼리를 제공합니다 실행? 내가 뭘 놓치고 있니? 임 새로운이 모든, 그래서 제발 날 망치지 말아주세요. 나는 비슷한 예제를 많이 찾으려고했지만 didnt은 얻는다.

답변

0

테이블의 관계가 일대 다 인 경우 테이블이 조인됩니다. 도메인 파일에서

, Employee_Domain직원 사이의 관계는 일대일입니다.

가로 변경하려고 :

@OneToMany(mappedBy="Employee_Domain") 
private List<Employee> employees= new ArrayList<Employee>(); 

그리고이 발생합니다 가입 할 수 있습니다.

관련 문제