我的模型中有一个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