Играть в Scala 2.6 с Ebean: доступ к полю Entity делает пустыми ассоциации OneToMany - PullRequest
0 голосов
/ 02 октября 2018

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

1 Ответ

0 голосов
/ 03 октября 2018

Это объясняется здесь: https://github.com/ebean-orm/ebean/issues/1381

Мне нужно добавить поле @Id для моих дочерних компонентов.

...