SpringHibernate:使用相关对象时如何定义默认值

SpringHibernate:使用相关对象时如何定义默认值,hibernate,model-view-controller,spring,forms,Hibernate,Model View Controller,Spring,Forms,我有一个Spring3MVC应用程序,使用Hibernate作为ORM。一切正常。但有一个问题: 我有一个web界面来创建新对象,比如说一个新客户。每个客户都有一个状态。状态表具有预定义的值。CUSTOMER表有一个status_id字段用于连接信息 显示客户列表时,我可以访问CUSTOMER.STATUS属性,并根据id获取正确的对象 但是:我如何定义新客户的标准状态?我有一个带有下拉菜单的web界面 <form:select path="status"> <form:opt

我有一个Spring3MVC应用程序,使用Hibernate作为ORM。一切正常。但有一个问题:

我有一个web界面来创建新对象,比如说一个新客户。每个客户都有一个状态。状态表具有预定义的值。CUSTOMER表有一个status_id字段用于连接信息

显示客户列表时,我可以访问CUSTOMER.STATUS属性,并根据id获取正确的对象

但是:我如何定义新客户的标准状态?我有一个带有下拉菜单的web界面

<form:select path="status">
<form:option value="0" label="- Please Select -" />
<form:options items="${customerStatuses}" itemValue="id" />
</form:select>


这总是显示“请选择”文本,因为它的值似乎总是0???如何将其更改为我个人选择的标准状态?

您的控制器需要处理此问题。我会这样做:

@RequestMapping(value = { "/new-customer-form" })
public String showNewCustomerForm(ModelMap model) {
    Customer newCustomer = new Customer();
    newCustomer.setStatus(statusRepository.getDefaultStatus());
    model.addAttribute("customer", newCustomer);
    model.addAttribute("customerStatuses", statusRepository.getAllStatuses());
    return "customer-form";
}
事实上,“-请选择”-标签将不再显示,因为您的状态始终为已填充状态


(我希望这次我正确理解了您的问题。)

但我需要状态表,因为a)每个状态都有一些比oly a name更多的属性,我在表列中配置了这些属性,b)可以根据登录用户配置状态。有没有办法定义默认状态id?这应该会将正确的状态对象从表中拉出,对吗?因为无论用户从其个人状态列表中添加或删除什么,默认值都将存在。确定。因此,我创建了一个新客户,然后必须调用相应的setter。我必须在我的控制器中这样做,但不能在类中正确定义它。不完美,但至少我现在知道我可以停止寻找另一个解决方案了。谢谢