这是JPA实体MyEntity。
Entity
class MyEntity{
private Integer id;
private Date date;
private Double montant;
@ManyToOne(fetch = FetchType.LAZY)
private User creator;
}
class User {
private Integer id;
private String name;
private String image;
private Integer age;
private String anotherField;
}
我想检索一个MyEntity列表,其中包含其创建者的一些属性(只是id,名称及其图像)。 所以我创建了一个Projection界面。
interface Projection{
public Integer getId();
public Date getDate();
public Double getMontant();
public User getCreator();
interface User {
public Integer getId();
public String getName();
public String getImage();
}
}
这里是JPA存储库实现:
public interface CommandeRepository extends JpaRepository<EbCommande, Integer> {
<T> Collection<T> findById(Integer id, Class<T> type);
<T> Collection<T> findByCreator(User client, Class<T> type);
}
我希望第一个查询正常工作。
另一方面,对于第二个,当我循环返回MyEntity列表时,对User属性的每次访问都会触发对数据库的请求,以获取用户的所有属性。
我不明白JPA预测是如何运作的。
请帮忙!