我有发票和供应商 hibernate实体。
一张发票只有一个供应商。
一个供应商可以链接到许多发票。
在Invoice课程中,我有一个供应商getter-annotated with @ManyToOne。
所有在后端层工作正常但是....前端怎么样?
我的意思是,我的 invoices.jsp 非常简单。我有一个表单,您可以在其中输入金额和所有发票的数据,以及<select><option value="${supplierid}>supplier description</option></select>
。
在我的控制器的POST方法中,我收到所有数据,创建新发票,用它填充其属性以及如何处理供应商ID?
到目前为止,我向我的SupplierService查询具有该ID(密钥)的供应商,将其分配给我的全新发票的“供应商”属性,并将其保留为休眠状态。
这是最佳做法还是您有更好的想法? 感谢
答案 0 :(得分:1)
session.load(Supplier.class, id);
比查询更好,如果你只想满足引用,因为它不会创建到db的往返来获取供应商,它将返回一个满足引用的代理。
答案 1 :(得分:0)
您拥有的另一个选择是加载和缓存供应商,假设这种情况不会经常发生变化(当然需要“经常”需要,以及清除缓存的策略)。然后,您可以在呈现JSP之前从缓存中获取供应商ID,并在提交表单时创建发票时,可以使用其ID从缓存中检索供应商。