2016-11-25 50 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

相关问题