2016-11-25 42 views
0

我有以下字段一個jsp: loginIDpasswordfirstNamelastNameaadharCardNostandardsectionschoolName插入數據在一個提交使用的Struts2和Hibernate

其中loginIDpasswordfirstNamelastName從表u_user

aadharCardNo是從u_userdocument

standardsectionschoolName是從u_academicdetails

一旦用戶輸入的所有細節在register.jsp頁(提交表單後生成ID)的ID產生和插入之後應該在各自表

aadharCardNoID(生成的一個)在u_userdocument

standardsectionschoolNameIDu_user

我是如何在Hibernate中做到這一點(產生的)在u_academicdetails

firstNamelastName,(產生的)ID ???

請推薦我,因爲我是Hibernate的新手,在各種試驗後都無法弄清楚。

我已經映射使用一個一對一的映射......

回答

0

這是我做的表格: 創建用戶表的額外領域,包含保存到其他表所需要的信息。 Hibernate插入僅適用於從其他表映射時,該約束使我做到這一點。

您可以在UserDAO中實例化您的其他模型。然後從您剛剛映射到您的操作的用戶表中設置它們的參數,然後像平常一樣保存會話。這裏是我的UserDAO註冊。 roleName是一個用於roleName表的參數,但是我把它映射到User,所以我可以複製它。

請注意,這可能是一個黑客攻擊。

public void registrate(Session session, String email, String plainTextPassword, String roleName) { 
    User user = new User(); 
    UserRole userRole = new UserRole(); 
    user.setUsername(email); 
    user.setEmail(email); 
    generatePassword(user, plainTextPassword); 
    user.setRoleName(roleName); 

    userRole.setEmail(email); 
    userRole.setRoleName(roleName); 
    session.save(user); 
    session.save(userRole); 
    //Query query = session.createQuery("insert into UserRole(roleName, email) select email,roleName from User where roleName =:roleName and email =:email"); 
    //query.setParameter("roleName", roleName); 
    //query.setParameter("email", email); 
    //query.executeUpdate();   
} 

我的形式:

<div> 
    <s:form action="createUser" method="post"> 
    E-Mail 
    <s:textfield name="email" key="user.email"/> 
    Password 
    <s:textfield name="password" key="user.password"/> 
    Role name 
    <s:textfield name="roleName" key="user.roleName"/> 
    <br/> 
    <s:submit /> 
    </s:form> 
+0

我已經使用休眠的一個一對一的映射,但我想通過JSP發送數據,我怎麼能說出不同的表中的變量在JSP中,我使用ModelDriven類來完成我的struts動作 – Nupur

相關問題