В моей модели 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