Struts 2 w/hibernate의 새 사용자입니다. "클라이언트"및 "Coordonnees"(프랑스어 단어) 내 테이블 "클라이언트"에서 "coordonnees_id"라는 FK가 있는데 "Coordonnees"테이블의 "id"필드를 참조합니다. 삽입을 만들었습니다. 이 같은 형태 :Struts2/Hibernate가있는 Insert의 외래 키
파일 add.jsp
<s:form method="post" action="create">
<s:textfield cssClass="" label="Nom" name="client.nom" />
<s:textfield cssClass="" label="Prénom" name="client.prenom" />
....
<s:textfield cssClass="" label="Email" name="coordonnees.email" />
<s:textfield cssClass="" label="Adresse" name="coordonnees.adresse" />
<s:submit value="Insert" />
</s:form>
파일 ClientAction.java
private Client client;
private ClientManager clientManager;
private Coordonnees coordonnees;
private CoordonneesManager coordonneesManager;
public String create() {
client = getClient();
coordonnees = getCoordonnees();
try {
clientManager.insert(client);
coordonneesManager.insert(coordonnees);
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
파일 CoordonneesManager.java
내 Client.hbm.xml 파일에서public boolean insert(Coordonnees coordonnees) {
session = MyHibernateUtil.currentSession();
tx = session.beginTransaction();
try {
session.save(coordonnees);
log.info("Enregistrement de : " + getClass());
return true;
} catch (Exception e) {
log.error(e);
return false;
} finally {
tx.commit();
MyHibernateUtil.closeSession();
}
}
:
<many-to-one class="model.Coordonnees" fetch="select" name="coordonnees">
<column name="coordoonnees_id"/>
</many-to-one>
여기 내 문제 : 나는 내 양식을 제출하면 , 나는 (... 물론) 테이블 클라이언트에 데이터를 삽입 할이, 테이블 "Coordonnees"(잘 작동합니다)에 넣고 테이블 Coordonnees에서 만든 "id"를 가져와 내 테이블 Client (필드 "coordonnees_id"=> 내 FK)에 삽입하고 싶습니다.
struts2에서 쉽게 할 수있는 옵션이 있습니까? 물론 테이블 Coordonnees에서 마지막 삽입에 대한 select 쿼리를 수행 할 수 있습니다. id를 가져 와서 테이블 클라이언트를 업데이트하십시오.하지만 요점은 아닙니다. Struts가 나를 위해이 작업을 수행하길 원합니다 (물론 가능하다면).
내가이 두 개체를 지속하는 것은 동일한 트랜잭션에서 발생한다고 생각 당신의 도움 :)
개체와 매핑이 올바르게 설정 되었다면, Hibernate는 개체 그래프를 삽입 할 때 외부 키가 모두 올바르게 설정되었는지 확인해야합니다. – cdeszaq
안녕하세요 cdeszaq, 그건 내 질문 : 어떻게 그 요소를 정확하게 매핑 할 수 있습니까? 나는 그 기술을 가진 초보자이다 : /. 이 파일이 "Patient.hbm.xml"파일에 있습니까? 답을 보내 주셔서 감사합니다 – Vince