Ich habe einen Controller vom Restdienst, den ich eine Hibernate-Methode nenne, um das Ergebnis zu erhalten, aber ich weiß wirklich nicht, warum die Kinderkomponenten nicht gekommen sind. Wenn ich diese Methode mit Junit aufrufen, funktioniert es. Dies ist der Code:Das Elternteil ruft nicht die Hiberntnate des Kindes ab JPA
{
@Entity
public class Product implements Serializable {
private static final long serialVersionUID = -6131311050358241535L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false)
private String name;
private String description;
@OneToMany(mappedBy = "product")
private List<Image> images = new ArrayList<Image>();
}
{
@Entity
public class Image implements Serializable {
private static final long serialVersionUID = 2128787860415180858L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@JoinColumn(name = "product_id")
@ManyToOne
private Product product;
private ImageType type;
}
{
@PersistenceContext
private EntityManager entityManager;
public List<Product> findAllWithParentProductsAndImage() {
String hpql = "select distinct p from Product p left join fetch p.images";
List<Product> resultList = entityManager.createQuery(hpql,
Product.class).getResultList();
return resultList;
}
}
Haben Sie sicherstellen Sie überprüft nicht die Kinder laziily Laden? –
Wickeln Sie die @Transaction (readOnly = true) in den Dienst sollte ermöglichen, dass der träge Laden Kind träge zugegriffen wird. –