我想創建一個Spring Hibernate的應用程序,我訪問具有以下值的表:在DAOImpl類Hibernate查詢只返回一個值
select REPAIR_STATUS_CD,STATUS_DATE
from repair_status
where REPAIR_CONF_NO ='1234567';
REPAIR_STATUS_CD STATUS_DATE
----- -------------------- -
NEWO 25-FEB-2016 20:07:45
RLSD 25-FEB-2016 20:07:45
REQA 25-FEB-2016 20:13:24
URCD 26-FEB-2016 19:43:40
UINS 26-FEB-2016 19:43:45
UBER 27-FEB-2016 09:42:59
RQT6 27-FEB-2016 09:46:28
RQXP 03-MAR-2016 12:24:43
RBER 04-MAR-2016 21:52:22
SPCM 09-MAY-2016 18:13:33
SCOM 10-MAY-2016 19:09:54
現在我取相同的使用下面的碼。
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Query<RepairStatus> query = session.createQuery("from RepairStatus where repairConfNo = '"+repairConfNo+"' ");
List<RepairStatus> repairStatusList = query.getResultList();
System.out.println("Inside Repair Status Service");
for(RepairStatus repairStatus: repairStatusList){
System.out.println(repairStatus.getRepairStatusCode());
}
但是,當我使用的系統輸出和打印輸出的for循環我得到以下幾點:
內部維修狀態服務
NEWO
NEWO
NEWO
NEWO
NEWO
NEWO
NEWO
NEWO
NEWO
爲什麼行得到重複,雖然數據庫具有適當的價值。
感謝很多提前:)
而且這是我的實體類
package com.gsx.entity;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="TG_REPAIR_STATUS")
public class RepairStatus {
@Id
@Column(name="REPAIR_CONF_NO")
private String repairConfNo;
@Column(name="REPAIR_STATUS_CD")
private String repairStatusCode;
@Column(name="STATUS_DATE")
private Date statusDate;
public void setStatusDate(Date statusDate) {
this.statusDate = statusDate;
}
public String getRepairConfNo() {
return repairConfNo;
}
public void setRepairConfNo(String repairConfNo) {
this.repairConfNo = repairConfNo;
}
public Date getStatusDate() {
return statusDate;
}
public String getRepairStatusCode() {
return repairStatusCode;
}
public void setRepairStatusCode(String repairStatusCode) {
this.repairStatusCode = repairStatusCode;
}
}
代碼有SQL注射但實際上很好。 – StanislavL
@StanislavL非常感謝您的快速回復。但我沒有得到什麼是不正確的在這裏:)對不起 –
啓用「顯示SQL」,看看什麼是SQL查詢看起來像 –