我想创建一个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查询看起来像 –