我希望我的HQL返回Object而不是數組,因爲我使用了一些連接表,當我編寫包含連接表的列名的查詢時,HQL給出數組列表而不是對象。我發現我們應該使用new
來使它成爲對象。HQL不返回對象
SELECT new Accommodation(a.name, a.rank, ap.pic) FROM Accommodation AS a INNER JOIN a.accommodationPics AS ap WHERE ap.isPromoPic = 1 AND a.cbState.stateName = :stateName
我已經嘗試過目前爲止,並得到錯誤:'Accommodation' cannot be resolved to a type.
。有什麼不對?
更新
新建查詢:SELECT new ba.reservation.pojo.Accommodation(a.name, a.rank, ap) FROM Accommodation AS a INNER JOIN a.accommodationPics AS ap WHERE ap.isPromoPic = 1 AND a.cbState.stateName = :stateName
@Column(name = "name", nullable = false, length = 200)
private String name;
@Column(name = "rank")
private int rank;
@OneToMany(mappedBy = "accommodationBean", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JsonManagedReference
private List<AccommodationPic> accommodationPics;
public Accommodation(String _name, int _rank, ArrayList<AccommodationPic> _pic) {
this.rank = _rank;
this.name = _name;
this.accommodationPics = _pic;
}
1. simas_ch說:加入你的類寄宿完整路徑。 2.您是否定義了有關住宿的正確構造方法? –
@JoeTaras我只有一個默認的住宿構造函數。 –
您必須添加一個構造函數(Type1,Type2,Type3)和3種類型的查詢 –