前段時間因爲需求要添加報表數據,調整ireport後,打印pdf文件出現數據錯位的狀況,調試發現不是ireport問題,就查看了後臺傳送的數據,最後發現傳送的對象屬性值已經就是錯位的,那就是獲取對象時出的問題,查看了查詢語句,發現問題了,查詢時使用hql動態建立對象,但查詢語句中對象的屬性順序跟該對象帶參構造函數中傳參的順序沒有一一對應,也就是,好比如下對象User:java
public class User {
priavte Integer id;
private String name;
private String age;
private String mobile;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age= age;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile= mobile;
}
public User(){}
public User(Integer id,String name,String age,String mobile){
this.id= id;
this.name=name;
this.age=age;
this.mobile=mobile;
}
}
hql查詢動態建立對象時對象參數必須是:select new User(id,name,age,mobile) from User; 順序必須一致,查詢結果數據纔不會錯位。函數