在Play框架中定义哪些“最佳实践” - 具有“计算”字段的对象,而不是直接映射到与实体相关的任何字段?
例如,我想为具有“定价”和“实际价格”的“产品”定义模型。
就DB而言,“定价”直接映射到模型类中的“int listPrice”。然而,“实际价格”是使用与“产品”本身无关的其他数据(例如,一般商店折扣,部门特定折扣等 - 涉及的一些“业务逻辑”)从“定价”计算的。
由于我的应用程序需要公开REST API(而不仅仅是Web应用程序) - 我真的想扩展“Product”类以支持“计算”字段,因此“MyProduct.listPrice”和“MyProduct”都是如此。 finalPrice“将得到支持。
是否可以将“瞬态”成员添加到模型类中?如果没有,应该定义一个派生自模型的类,并使用它吗?
感谢任何提示。
最高
答案 0 :(得分:9)
这是要走的路
@Entity public class Product extends Model {
...
public int listPrice;
@Transient int realPrice;
public int getRealPrice() {
return calcRealPrice(listPrice);
}
...
}