【发布时间】:2014-04-21 11:44:14
【问题描述】:
我有一个包含一组字段和外键的表。
使用 Ebean 时,我可以指定要填写请求的字段,仅从以外部关系结尾的 id 开始(并不总是需要将数据库中的所有字段都包含在类中)。它只使用一个绑定到表的类。
@Entity
public class Product extends Model{
@Id
public Long id;
@Constraints.Required
public String name;
@Lob
public String description;
@ManyToOne
public Trademark trademark;
...
}
第一季度。使用 Anorm 时鼓励使用 case class,但我需要指定 case class 的所有可能字段并填写它们。如果我只需要带有字段Id 和Name 的对象,或者只需要带有Id 的引用对象?我必须描述另一个类?
case class ProductRef (id: Pk[Long] = NotAssigned)
case class Product (id: Pk[Long] = NotAssigned, name: String)
case class ProductWithTrademark (id: Pk[Long] = NotAssigned, name: String, trademark: Trademark)
...
case class Trademark (id: Pk[Long] = NotAssigned, name: String ="")
第二季度。如果可以将此表用作另一个表中的外键怎么办?使用哪个case class?
case class Size(id: Pk[Long] = NotAssigned, name: String)
case class ProductSize(id: Pk[Long] = NotAssigned, product: ??? , size: Size)
第三季度。或者最好总是用默认值填充所有字段并只使用一个case class
case class Product(id: Pk[Long] = NotAssigned, name: String="", trademark: Trademark = Trademark())
case class Trademark(id: Pk[Long] = NotAssigned, name: String="")
case class Size(id: Pk[Long] = NotAssigned, name: String = "")
case class ProductSize(id: Pk[Long] = NotAssigned, product: Product = Product(), size: Size = Size())
第四季度。还是有正确的决定我根本不知道?
【问题讨论】:
标签: scala playframework-2.0 anorm