0

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
0

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.