在show form中添加复合id

时间:2011-02-28 19:58:22

标签: hibernate spring spring-mvc

我的User.hbm文件是这样的,

<composite-id>
    <key-property name="username" type="java.lang.String">
        <column name="USERNAME"></column>
    </key-property>
    <key-property name="location" type="java.lang.String">
        <column name="LOCATION"></column>
    </key-property>
</composite-id>

用户类就是这样,

private String username;
private String location;
getter和setter 我已经覆盖了hashcode和equals方法。

在我的mvc表单控制器中,我正在尝试显示用户相关数据

我的jsp页面

<div>
    <appfuse:label key="user.name" styleClass="desc"/>
    <form:input path="username" id="tag" cssClass="text medium" cssErrorClass="text  medium error"/>
</div>

我的表单controller.class

 @RequestMapping(method = RequestMethod.POST)
 public String onSubmit(User user, BindingResult errors,
                           HttpServletRequest request, HttpServletResponse response) throws Exception {
        LOG.debug("entering 'onSubmit' method ...");


        /////user.getUsername
    }

我按表格数据提交后,会被添加到用户名

如果我尝试打印user.getUsername,则打印名称,例如:,hello。

任何人都可以解释为什么会发生这种情况如何解决它。 它与复合ID有关吗?

2 个答案:

答案 0 :(得分:1)

我认为你需要创建内部静态类,它应该被映射为Composite Id。

Mapping same class relation

Mapping same class relation - continuation

请看这些问题和答案可能有所帮助。

答案 1 :(得分:0)

谢谢我解决了这个问题。在隐藏的道路上,我正在使用
 <form:hidden path="userName"/>

<div>
    <appfuse:label key="user.name" styleClass="desc"/>
    <form:input path="username" id="tag" cssClass="text medium" cssErrorClass="text  medium error"/>
</div>

我删除了隐藏的已解决的问题