小编Tim*_*yer的帖子

休眠:集合的投影返回ArrayIndexOutOfBoundsException

我正在尝试使用hibernate中的投影返回部分对象,如下所示:

电影课:

@Table(name = "Movies")
public class Movie extends Entity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "title")
private String title;

@OneToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
@JoinTable(name = "Movie_Genre", joinColumns = {@JoinColumn(name = "movieId")}, inverseJoinColumns = {@JoinColumn(name = "genreId")})
private List<Genre> genres;
Run Code Online (Sandbox Code Playgroud)

然后,当用户转到htp:// localhost:8080 / api / movies?fields = genres时,这称为:

电影DAO:

Criteria cr = getCurrentSession().createCriteria(Movie.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("genres"), "genres");
cr.setProjection(projectionList);
cr.setResultTransformer(Transformers.aliasToBean(Movie.class));
return cr.list();
Run Code Online (Sandbox Code Playgroud)

但这返回:

java.lang.ArrayIndexOutOfBoundsException: 0
org.hibernate.loader.criteria.CriteriaLoader.getResultRow(CriteriaLoader.java:166)
Run Code Online (Sandbox Code Playgroud)

休眠查询:

select this_.id as …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate projection partial

5
推荐指数
1
解决办法
1944
查看次数

标签 统计

hibernate ×1

java ×1

partial ×1

projection ×1

spring ×1