Reputation: 1
Not the question asked here : Could not extract result in hibernate?
My POJO look like this:
@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;
}
}
My controller:
@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);
}
My service:
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<>();
}
}
My repository:
@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);
Error I am getting:
[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
Upvotes: 0
Views: 1215
Reputation: 69440
You can not use select NEW qbr.entity.DuplicateManagerMetricsRelTagEntity(
with nativeQuery=true
.
You can use nativeQuery
and map the result by hand or you have to use a JPQL query where you have to remove nativeQuery=true
.
Upvotes: 1