如何设计一个简单的JSP来管理ManyToOne Hibernate关联

时间:2012-03-07 13:43:13

标签: java spring hibernate jsp spring-mvc

我有发票供应商 hibernate实体。

一张发票只有一个供应商。

一个供应商可以链接到许多发票。

在Invoice课程中,我有一个供应商getter-annotated with @ManyToOne。

所有在后端层工作正常但是....前端怎么样?

我的意思是,我的 invoices.jsp 非常简单。我有一个表单,您可以在其中输入金额和所有发票的数据,以及<select><option value="${supplierid}>supplier description</option></select>

在我的控制器的POST方法中,我收到所有数据,创建新发票,用它填充其属性以及如何处理供应商ID?

到目前为止,我向我的SupplierService查询具有该ID(密钥)的供应商,将其分配给我的全新发票的“供应商”属性,并将其保留为休眠状态。

这是最佳做法还是您有更好的想法? 感谢

2 个答案:

答案 0 :(得分:1)

session.load(Supplier.class, id);比查询更好,如果你只想满足引用,因为它不会创建到db的往返来获取供应商,它将返回一个满足引用的代理。

答案 1 :(得分:0)

您拥有的另一个选择是加载和缓存供应商,假设这种情况不会经常发生变化(当然需要“经常”需要,以及清除缓存的策略)。然后,您可以在呈现JSP之前从缓存中获取供应商ID,并在提交表单时创建发票时,可以使用其ID从缓存中检索供应商。