我有3个JPA实体。
FormattedText.java
@Entity
public class FormattedText extends BaseEntity implements Serializable {
@OneToMany(mappedBy = "refFormattedText",cascade = CascadeType.ALL)
private Set<FormattedText_Product> formattedText_products = new HashSet<FormattedText_Product>(0);
}
FormattedText_Product .java
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"formattedTextType","refProduct"}))
public class FormattedText_Product extends BaseEntity{
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "refFormattedText")
private FormattedText refFormattedText;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "refProduct")
private Product refProduct;
@Column(name="formattedTextType")
private FormattedTextType formattedTextType;
}
产品.java
@Entity
public class Product extends BaseEntity{
@OneToMany(mappedBy = "refProduct",cascade = CascadeType.ALL,fetch = FetchType.EAGER)
private Set<FormattedText_Product> formattedText_products = new HashSet<FormattedText_Product>(0);
}
因此,FormattedText_Product是一个连接表。
我有一个JPA存储库:
public interface FormattedTextRepository extends GenericJpaRepository<FormattedText, Integer>{
}
当我这样做时:
FormattedTextRepository formattedTextRepository;
formattedTextRepository.findAll();
我得到了所有 FormattedText ,其中 formattedText_products 集合不为空。
但是当我这样做时:
FormattedTextRepository formattedTextRepository;
List<FormattedText> list = formattedTextRepository.findAll();
list.getFormattedText_products().get(0).getRefProduct().getFormattedText_products().size();
大小为0。 但如果我这样做:
FormattedTextRepository formattedTextRepository;
List<FormattedText> list = formattedTextRepository.findAll();
FormattedText ft = list.getFormattedText_products().get(0);
entityManager.refresh(ft);
ft.getRefProduct().getFormattedText_products().size();
我得到了正确的收藏尺寸。它包含产品的formattedText_products对象。
是否可以通过findAll()方法填充 FormattedText_Product 中的产品集合?
提前Tahnks于连