无法提取结果集org.hubinate.exception.SQLGrammarException



这里没有问题:无法在休眠中提取结果?

我的POJO是这样的:

@Entity
@Table(name = "vw_dupicate_ticket_count_qbr_reltag")
public class DuplicateManagerMetricsRelTagEntity {​​​​​​
@Id
@Column(name = "sn")
private Integer sn;
@Column(name = "releasetag")
private String releasetag;
@Column(name = "reporting_month")
private String reporting_month;
@Column(name = "clientid")
private String clientid;
@Column(name = "appid")
private String appid;
@Column(name = "ticket_count")
private Integer ticket_count;

public DuplicateManagerMetricsRelTagEntity() {​​​​​​
}​​​​​​
public DuplicateManagerMetricsRelTagEntity(Integer sn, String releasetag, String reporting_month, String clientid, String appid, Integer ticket_count) {​​​​​​
this.sn = sn;
this.releasetag = releasetag;
this.reporting_month = reporting_month;
this.clientid = clientid;
this.appid = appid;
this.ticket_count = ticket_count;
}​​​​​​
public Integer getSn() {​​​​​​
return sn;
}​​​​​​
public void setSn(Integer sn) {​​​​​​
this.sn = sn;
}​​​​​​
public String getReleasetag() {​​​​​​
return releasetag;
}​​​​​​
public void setReleasetag(String releasetag) {​​​​​​
this.releasetag = releasetag;
}​​​​​​
public String getReporting_month() {​​​​​​
return reporting_month;
}​​​​​​
public void setReporting_month(String reporting_month) {​​​​​​
this.reporting_month = reporting_month;
}​​​​​​
public String getClientid() {​​​​​​
return clientid;
}​​​​​​
public void setClientid(String clientid) {​​​​​​
this.clientid = clientid;
}​​​​​​
public String getAppid() {​​​​​​
return appid;
}​​​​​​
public void setAppid(String appid) {​​​​​​
this.appid = appid;
}​​​​​​
public Integer getTicket_count() {​​​​​​
return ticket_count;
}​​​​​​
public void setTicket_count(Integer ticket_count) {​​​​​​
this.ticket_count = ticket_count;
}​​​​​​
}​​​​​​

我的控制器:

@RequestMapping("/qbr/duplicatemanager/{clientid}/{appid}/{releasetag}/")
@CrossOrigin
public List<DuplicateManagerMetricsRelTagEntity> getAllDuplicateManagerFromReleaseTag(@PathVariable String clientid, @PathVariable String[] appid, @PathVariable String releasetag) {
logger.info("Returing all duplicate managers of client {} appId {} from release tag {} ", clientid, appid, releasetag);
System.out.println("data in controller : " + clientid + " " + appid + " " + releasetag);
return duplicateManagerMetricsService.getAllDuplicateManagerFromReleaseTag(clientid, appid, releasetag);
} 

我的服务:

public List<DuplicateManagerMetricsRelTagEntity> getAllDuplicateManagerFromReleaseTag(String clientid, String[] appid, String releasetag) {
try {
System.out.println("data in service : "+ clientid + " " + appid + " " + releasetag);
return duplicateManagerMetricsRepository.getAllDuplicateManagerfromReleaseTag(clientid, appid, releasetag);
} catch (Exception e) {
logger.error(e);
return new ArrayList<>();
}
}

我的存储库:

@Query(value = "select NEW qbr.entity.DuplicateManagerMetricsRelTagEntity( a.sn, a.clientid, a.ticket_count) from  vw_dupicate_ticket_count_qbr_reltag a where a.clientid = ?1 AND a.appid in (?2)  AND a.releasetag=?3", nativeQuery = true)
List<DuplicateManagerMetricsRelTagEntity> getAllDuplicateManagerfromReleaseTag(String clientid, String[] appid, String releasetag);

我得到的错误:

[INFO ] 2022-09-05 02:24:58.158 [http-nio-8080-exec-7] DuplicateManagerMetricsController - Returing all duplicate managers of client 657 appId [657-001] from release tag WIL657.2021.05-001 

data in controller : 657 [Ljava.lang.String;@42daeab8 WIL657.2021.05-001
data in service : 657 [Ljava.lang.String;@42daeab8 WIL657.2021.05-001
2022-09-05 02:24:58 DEBUG org.hibernate.SQL - select NEW qbr.entity.DuplicateManagerMetricsRelTagEntity( a.sn, a.clientid, a.ticket_count) from  vw_duplicate_ticket_count_qbr_reltag a where a.clientid = ? AND a.appid in (?)  AND a.releasetag=?
2022-09-05 02:24:58 WARN  o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 923, SQLState: 42000
2022-09-05 02:24:58 ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ORA-00923: FROM keyword not found where expected [ERROR] 2022-09-05 02:24:58.175 [http-nio-8080-exec-7] DuplicateManagerMetricsService - org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

不能将select NEW qbr.entity.DuplicateManagerMetricsRelTagEntity(nativeQuery=true一起使用。

您可以使用nativeQuery并手动映射结果,或者您必须使用JPQL查询来删除nativeQuery=true

相关内容

最新更新