使用Ebean玩Scala 2.6:访问实体字段会使OneToMany关联为空



我的模型中有一个OneToMany,我希望(如果可能的话(无需查询即可访问该字段。 或者至少,了解为什么列表在某些情况下为空

@Entity
class Product extends Model {
@Id
var id : Long = -1
@Column
var price : Float = _
@Column
@OneToMany(mappedBy = "product")
var productImages : java.util.List[ProductImage] = _

@Column
@OneToMany(mappedBy = "product")
var categoryProduct : java.util.List[CategoryProduct] = _
}

@Entity
class ProductImage extends Model {
@ManyToOne
var product : Product = _
@Column
var id : Long = _
}

在我的 scala 模板中,我可以@product.productImages.get(0),它有效。

但是,如果我访问模板中的另一个字段,例如@product.price那么product.productImages通常是一个空列表,(某些产品,1 或 2 大约 20,获取其图像(

为什么获取关联依赖于访问实体的其他字段? 为什么有些产品仍然获取他们的图像?

PS :我发现当我以这种方式查询时,关联被获取:

CategoryProduct.find.query().where().eq("category", cat).setMaxRows(5).findList.asScala.toList
.map {_.product}

当我像这样直接查询产品时不会:Product.find.query().setMaxRows(20).findList.asScala.toList

这里解释: https://github.com/ebean-orm/ebean/issues/1381

我需要为我的孩子豆添加一个@Id字段。

最新更新