如何处理Play Framework模型中的“计算”字段

时间:2012-01-19 21:13:36

标签: jpa model playframework

在Play框架中定义哪些“最佳实践” - 具有“计算”字段的对象,而不是直接映射到与实体相关的任何字段?

例如,我想为具有“定价”和“实际价格”的“产品”定义模型。

就DB而言,“定价”直接映射到模型类中的“int listPrice”。然而,“实际价格”是使用与“产品”本身无关的其他数据(例如,一般商店折扣,部门特定折扣等 - 涉及的一些“业务逻辑”)从“定价”计算的。

由于我的应用程序需要公开REST API(而不仅仅是Web应用程序) - 我真的想扩展“Product”类以支持“计算”字段,因此“MyProduct.listPrice”和“MyProduct”都是如此。 finalPrice“将得到支持。

是否可以将“瞬态”成员添加到模型类中?如果没有,应该定义一个派生自模型的类,并使用它吗?

感谢任何提示。

最高

1 个答案:

答案 0 :(得分:9)

这是要走的路

@Entity public class Product extends Model {
  ...
  public int listPrice;
  @Transient int realPrice;
  public int getRealPrice() {
    return calcRealPrice(listPrice);
  }
  ...
}