Form, FormConfig 및 GroupForms의 3 가지 엔트리 사이의 관계에 다음과 같은 문제가 있습니다. 모델은 Form과 GroupForms 사이의 manyToMany 관계이지만,이 조인과 관련된 몇 가지 추가 데이터가 있습니다. 따라서 FormConfig 엔티티를 모델링했습니다. Form은 OneToMany 관계의 FormConfig와 관련이 있고 GroupForms는 OneToMany 관계의 FormConfig와 관련이 있습니다.최대 절전 모드 엔티티의 복잡한 관계
Form.java :
...
@OneToMany(mappedBy = "form", cascade = CascadeType.ALL)
private List<FormConfig> formConfigs = new ArrayList<FormConfig>();
...
GroupForms.java :
...
@OneToMany(mappedBy="group", fetch=FetchType.EAGER)
private List<FormConfig> formConfigs = new ArrayList<FormConfig>();
FormConfig :
...
@ManyToOne
@JoinColumn(name = "kf_grupa_id")
private GroupForms group;
@ManyToOne
@JoinColumn(name = "kf_formularz_id")
private Form form;
....
내가 어떤 그룹을 만들어, 지금은 원하는 코드에서이처럼 보인다 새 양식을 만들고 GroupForms에 가입하려면 다음과 같이하십시오.
void createFormInGroup(GroupForms groupForms) {
Form form = new Form();
/*setters execution*/
form.set(..);
....
FormConfig formConfig = new FormConfig();
/*setters execution*/
formConfig.set(..);
....
formConfig.setGroup(groupForms);
formConfig.setForm(form);
form.getFormConfigs().add(formConfig);
groupForms.getFormConfigs().add(formConfig);
/* code responsible for beginTransaction */
session.saveOrUpdate(formConfig);
session.saveOrUpdate(form);
session.saveOrUpdate(groupForms);
/* code responsible for endTransaction */
}
하나의 그룹에 대해이 함수를 두 번 호출합니다. 즉, 두 개의 폼을 만들고 그 폼을 하나의 그룹에 포함해야합니다. 그러나 불행하게도, hibernate를 사용하는 질의는 엔티티 GroupForms에서 두 줄을 반환한다. 내 테이블을 확인하고 엔터티 GroupForms와 연결된 테이블에 행이 하나만 있습니다. 누구든지 그걸 도울 수 있니? 나는 왜 hibernate가 데이터베이스에 존재하는 것보다 더 많은 GroupForm을 반환하는지 알지 못한다.
감사
사용중인 쿼리는 무엇입니까? – Shailendra
다음과 같은 것 : Query q = session.createQuery ("FROM"+ "GroupForms"+ "O ORDER BY"+ sort + ""+ this.setOrder (order)); 주문 및 정렬이 정의 된 곳 – user2539823
생성 된 SQL을 붙여 넣으십시오. 실행시 로그 또는 콘솔에서 찾을 수 있습니다. 쿼리의'this.setOrder (order)'부분에 혼란 스럽다. – alterfox