0
OneToMany 관계에서 자식 클래스의 ID 속성을 기반으로 결과를 필터링하는 대신 Hibernate (4.1.9.Final)가 내부 외부 대신에 외부 외부 조인을 생성합니다. 가입하고 원하지 않는 결과를 반환하십시오.Hibernate OneToMany 관계 내부 조인
모델 :
부모 :
@Entity
@Table(name = "CATEGORY")
public class Category
{
@Id
@Column(name = "CATEGORYID")
private int ID;
@Column(name = "CATEGORYNAME")
private String name;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "CATEGORYID")
@Filter(name = "TEST_RUN_ID_FILTER")
private Collection<TestCase> testCases
...
}
아이 :
@Entity
@Table(name = "TESTCASE_NEW")
@FilterDef(name = "TEST_RUN_ID_FILTER", defaultCondition = "TESTRUNID in (:IDS)", parameters = { @ParamDef(name = "IDS", type = "int") })
public class TestCase
{
@Id
@Column(name = "TESTCASEID")
private int ID;
@Column(name = "TESTCASENAME")
private String name;
@Column(name = "STATUS")
private String status;
@Column(name = "TESTRUNID")
private int testRunId;
...
}
DAO :
public List<Category> getAllCategoriesForTestRuns(List<Integer> testRunIDs)
{
Session session = getSession();
session.enableFilter("TEST_RUN_ID_FILTER")
.setParameterList("IDS", testRunIDs);
Query query = session.createQuery("FROM " + Category.class.getSimpleName());
List<Category> result = query.list();
return resul2t;
}
Hibernate에게 내부 조인을 사용하도록 어떻게 말할 수 있습니까?